Firebase-Firebase有时不写ArrayList <object> Android Studio

时间:2018-10-14 22:06:36

标签: java android firebase firebase-realtime-database

对于我的数据库,我正在保存一个ArrayList项目。但是,有时Firebase不会将ArrayList写入其中。我尝试通过为我的应用选择相同的项目来重现它,但发现有时它无法编写。这是一个例子: Example

我使用以下内容写信给Firebase:

final Order newOrder = new Order(
    user_name,
    user_phone,
    user_email,
    user_address,
    Cart.items,
    Cart.totalPrice,
    paymentType,
    orderID
);

final DatabaseReference user_ref = database.getReference("User/" + CurrentUser.getPhoneNumber());

user_ref.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        ArrayList<Order> previousOrders = new ArrayList<Order>();

        // Get all previous orders to write
        if(dataSnapshot.child("previous_orders").exists()) {
            for(DataSnapshot snapshot : dataSnapshot.child("previous_orders").getChildren()) {
            Order order = snapshot.getValue(Order.class);
            previousOrders.add(order);
            }
         }

        // Inserted Check Here and found that my order.items was empty
        if(newOrder.getItems().isEmpty()) {
            System.out.println("Empty");
        }

        previousOrders.add(newOrder);
        user_ref.child("previous_orders").setValue(previousOrders);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
    }
});

主要问题是,即使以相同的步骤选择了相同的项目,有时我的Items ArrayList仍未写入Firebase,而其他所有内容仍然写入。我发现有时我通过的命令说没有物品,但是退出Firebase Listener时,它又有物品。

0 个答案:

没有答案