【发布时间】:2020-04-01 09:55:43
【问题描述】:
我正在创建一个食品订购应用程序。为此,我将食品名称保存到食品唯一 ID 中。所以我创建了 Item Details 作为一个节点,在这个节点中有 shopuniqueID 作为子节点,在这个节点中有 food uniqueID 此 ID 包含食物详细信息,如折扣、商品名称、价格、折扣 如果用户预订食物,将按以下格式保存 ,如果客户在用户选择的数量想要从总项目数量中删除之后确认食品订单,我如何删除两个不同节点中的两个不同值?
这是我尝试过的编码
btnorder=findViewById(R.id.qrbillid);
databaseReference= FirebaseDatabase.getInstance().getReference("User Booking").child(UserID).child(shopid);
dbrefcheck=FirebaseDatabase.getInstance().getReference("Item Details").child(shopid);
btnorder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
{
SelectedItems ui=dataSnapshot1.getValue(SelectedItems.class);
final String itemid=ui.getItemid();
final String Stritemselectedqty=ui.getItemid();
final String name=ui.getItemname();
///////////////////----find the user selection----////////////////////
dbrefcheck.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot2:dataSnapshot.getChildren())
{
UploadItem uploadItem=dataSnapshot2.getValue(UploadItem.class);
String uploadItemID=uploadItem.getKey();
String StrTotalqty=uploadItem.getQuantity();
if(itemid.equals(uploadItemID))
{
// do the mathematical operation
int totalqty=Integer.valueOf(StrTotalqty);
int selectedqty=Integer.valueOf(Stritemselectedqty);
int finalquality=totalqty-selectedqty;
Toast.makeText(MyBookedItems.this, ""+name+" ", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
///////////////////----find the user selection----////////////////////
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
【问题讨论】:
-
如果要删除为什么需要两个节点。用户预订对您来说已经足够了。因为那个包含 itemid 和 shopid。
标签: java android firebase firebase-realtime-database