【发布时间】:2022-01-20 16:16:55
【问题描述】:
Screenshot of my Database in firebase
这里有一个名为 products 的节点。在那,我有很多子节点。所有这些节点都有一个共同的价值,称为产品库存。我需要更新产品内所有节点的产品库存值。因为我正在开发购物应用程序,我如何在 android studio (Java) 中做到这一点?需要帮助。
private void updateStock(String quantity, String availablestock) {
int qty = Integer.parseInt(quantity);
int stk_avl = Integer.parseInt(availablestock);
int stk = stk_avl - qty;
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("ProductStock", ""+stk);
//update to database
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
reference.child(shopUid).child("Products").child(productId)
.updateChildren(hashMap)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
//update success
progressDialog.dismiss();
Toast.makeText(CartActivity.this, "Updated...", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressDialog.dismiss();
Toast.makeText(CartActivity.this, "" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
流程是: 用户将产品添加到购物车。在购物车中,我有 ordernow 按钮。因此,当用户现在单击订单时,应从产品节点中的产品库存值中减去其购物车中的产品数量。但是,例如,当此代码运行时,假设我在购物车中有 5 个产品,此代码仅更新 1 个产品的产品库存(购物车中最后添加的产品)。 如何让它更新所有产品?
【问题讨论】:
标签: java android firebase firebase-realtime-database google-cloud-platform