Android firebase中的值交换问题
我在Firebase上工作时遇到了一个致命问题,当时我正在使用一个食品配送应用程序。当我在警报对话框中为地址赋值时,我在Firebase上看到它存储在总量字段中。就是不知道怎么解决 这是我的Android firebase中的值交换问题,android,firebase,firebase-realtime-database,model,Android,Firebase,Firebase Realtime Database,Model,我在Firebase上工作时遇到了一个致命问题,当时我正在使用一个食品配送应用程序。当我在警报对话框中为地址赋值时,我在Firebase上看到它存储在总量字段中。就是不知道怎么解决 这是我的Request.java文件 public class Request{ private String phone; private String name; private String address; private String total; private L
Request.java
文件
public class Request{
private String phone;
private String name;
private String address;
private String total;
private List<Order>foods;
public Request() {
}
public Request(String phone, String name, String address, String total, List<Order> foods) {
this.phone = phone;
this.name = name;
this.address = address;
this.total = total;
this.foods = foods;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public List<Order> getFoods() {
return foods;
}
public void setFoods(List<Order> foods) {
this.foods = foods;
}
}
这是我的FoodDetail.java
:
public class FoodDetail extends AppCompatActivity {
TextView food_name,food_price,food_description;
ImageView food_image;
CollapsingToolbarLayout collapsingToolbarLayout;
FloatingActionButton btnCart;
ElegantNumberButton numberButton;
String foodId="";
FirebaseDatabase database;
DatabaseReference foods;
Food currentfood;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_detail);
//Firebase
database=FirebaseDatabase.getInstance();
foods=database.getReference("Foods");
//Init View
numberButton=findViewById(R.id.number_button);
btnCart=findViewById(R.id.btnCart);
btnCart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Database(getBaseContext()).addToCart(new Order(
foodId,
currentfood.getName(),
numberButton.getNumber(),
currentfood.getPrice(),
currentfood.getDiscountmenuId()
));
Toast.makeText(FoodDetail.this, "Added to cart", Toast.LENGTH_SHORT).show();
}
});
food_description=findViewById(R.id.food_description);
food_name=findViewById(R.id.food_name);
food_price=findViewById(R.id.food_price);
food_image=findViewById(R.id.img_food);
collapsingToolbarLayout=findViewById(R.id.collapsing);
collapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppbar);
collapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapseAppbar);
//get Food Id from intent
if (getIntent()!=null)
foodId=getIntent().getStringExtra("FoodId");
if (foodId != null && !foodId.isEmpty()){
getDetailFood(foodId);
}
}
private void getDetailFood(String foodId) {
foods.child(foodId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
currentfood=dataSnapshot.getValue(Food.class);
//set Image
Picasso.get().load(currentfood.getImage()).into(food_image);
collapsingToolbarLayout.setTitle(currentfood.getName());
food_price.setText(currentfood.getPrice());
food_name.setText(currentfood.getName());
food_description.setText(currentfood.getDescription());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
输入地址时,如下所示:
在模型类中写入数据的方式是错误的 请正确检查模型:
Request request=new Request(
Common.currentUser.getPhone(),
Common.currentUser.getName(),
txtTotalPrice.getText().toString(),
edtAddress.getText().toString(),
cart
);
在模型类中,总价位于第4位,地址位于第3位。当你提交给firebase时,你以错误的顺序传递了它
将模型数据更改为:
Request request=new Request(
Common.currentUser.getPhone(),
Common.currentUser.getName(),
edtAddress.getText().toString(),
txtTotalPrice.getText().toString(),
cart
);
您在模型类中编写数据的方式是错误的 请正确检查模型:
Request request=new Request(
Common.currentUser.getPhone(),
Common.currentUser.getName(),
txtTotalPrice.getText().toString(),
edtAddress.getText().toString(),
cart
);
在模型类中,总价位于第4位,地址位于第3位。当你提交给firebase时,你以错误的顺序传递了它
将模型数据更改为:
Request request=new Request(
Common.currentUser.getPhone(),
Common.currentUser.getName(),
edtAddress.getText().toString(),
txtTotalPrice.getText().toString(),
cart
);