Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android firebase中的值交换问题_Android_Firebase_Firebase Realtime Database_Model - Fatal编程技术网

Android 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

我在Firebase上工作时遇到了一个致命问题,当时我正在使用一个食品配送应用程序。当我在警报对话框中为地址赋值时,我在Firebase上看到它存储在总量字段中。就是不知道怎么解决

这是我的
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
);