我面临的问题是,我不知道如何更新购物车活动中已经存在的产品数量。我正在尝试从firebase中检索数据,但无法执行此操作。
这是我的代码:
private void addToCart() {
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("User Type").child(firebaseAuth.getUid());
databaseReference
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
if (dataSnapshot.child(firebaseAuth.getUid()).child("Cart").child(productID).exists()){
//update to firebase
String addedQty1 = "" + snapshot.child("addedQuantity").getValue();
int getQty = Integer.parseInt(addedQty1);
int currentQty = Integer.parseInt(addedQty);
int newAddedQty = getQty + currentQty;
String addedNewQty = String.valueOf(newAddedQty);
HashMap<String, Object> hashMap1 = new HashMap<>();
hashMap1.put("addedQuantity", "" + addedNewQty);
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("User Type");
databaseReference.child(firebaseAuth.getUid()).child("Cart").child(productID).updateChildren(hashMap1)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
//updated
progressDialog.dismiss();
Toast.makeText(ViewProductDetails.this, "Added successfully.", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//failed to update
progressDialog.dismiss();
Toast.makeText(ViewProductDetails.this, "" + e.getMessage(), Toast.LENGTH_LONG).show();
}
});
} else {
//Add to firebase
final String timestamp = "" + System.currentTimeMillis();
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("cartID", "" + timestamp);
hashMap.put("accountID", "" + accountID);
hashMap.put("productID", "" + productID);
hashMap.put("orderFrom", "" + shopName);
hashMap.put("discountNote", "" + discountNote);
hashMap.put("originalPrice", "" + oriPrice);
hashMap.put("discountPrice", "" + discountedPrice);
hashMap.put("price", "" + price);
hashMap.put("productTitle", "" + productTitle);
hashMap.put("productCategory", "" + category);
hashMap.put("productSize", "" + size);
hashMap.put("productQuantity", "" + availableQty);
hashMap.put("addedQuantity", "" + addedQty);
//add to firebase
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("User Type");
databaseReference.child(firebaseAuth.getUid()).child("Cart").child(productID).setValue(hashMap)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
progressDialog.dismiss();
Toast.makeText(ViewProductDetails.this, "Added successfully.", Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//failed to update
progressDialog.dismiss();
Toast.makeText(ViewProductDetails.this, "" + e.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
我已经分享了代码片段,其中“其他”语句运行正常,而“如果”语句运行失败。希望有人能帮助我。我真的很感激!
您的基本解决方案应该看起来像下面的伪代码:
if (product already in cart) {
get current product count from cart
increment product count
store new count back in cart
}
这是一个测试和三个操作。检查所有四个都存在并且所有四个都工作。如果可以,最好分开测试,这样你就可以更容易地隔离错误。
我正在与laravel进行一个网上购物项目,但这里有一个问题,我想如果用户将产品添加到购物车中,并且已经有相同的产品将被添加数量, 但在我的项目中:如果用户向购物车添加了一个产品,并且已经有了相同的产品,那么它将向会话添加一个新的价值项目 阵列: 阵列: 这是我的ProductsController.php: 非常感谢你。。。
我有一个Android购物应用程序,可以根据库存中产品的可用性来购买产品。最后,我需要扣除购物车上的产品数量,并更新数据库中该商品的数量。问题是,它当前更新了购物车中最后一件商品的数量的数据库值。如何让它更新购物车中商品数量的所有数据库值?。请有人帮帮我。Bellow是执行此操作的类的代码。
我试图将Woocommerce中的Add to Cart按钮的功能设置为只允许将特定产品添加到Cart中一次。 一旦第一次将特定产品添加到cart中,就需要隐藏添加到cart中的内容。 在推车我可以有任何数量的产品-只是一个最大的数量为每一个产品1。 如何允许将特定产品添加到购物车中一次?
我已经更新了我的活动类作为片段,但我不知道如何更新照片中的部分。 我的代码: 主要活动。kt 错误:e:/Users/nisa/AndroidStudioProjects/RecentEarthquakes/app/src/main/java/com/nisaefendioglu/RecentEarthquakes/fragment/地震。kt:(26,58):类型不匹配:推断的类型是地震,但是上
问题内容: 我有上面的代码。 如果我在cart_item上运行print_r,我将得到一个多维数组: 我如何只获得product_id? 我试过$ test = 没用 问题答案: 要获取 foreach循环中的每个购物车商品(对于简单产品): 如果是可变产品,请获取 : 或在两种情况下 ( Woocommerce 3+中 的 Object在哪里) : 更新: 循环外使用产品ID 1)打破循环 (仅
我正在创建一个WooCommerce(5.6.0版)网站,用户可以在该网站上购买泡沫产品,并在存档页面上计算价格。基本上,用户输入维度,然后根据公式计算价格。我目前正在努力更新购物车中的价格,我以前没有在这一级别定制产品和价格的经验,因此任何帮助都将不胜感激。。到目前为止,我已经完成了以下步骤: 1.获取(通过Ajax)并在WC_会话中设置自定义产品价格 2.从WC_Session数据更改购物车项