我对Android Studio Firebase数据库有疑问 . 我目前正在尝试在查询中设置一个条件,以便为选定的查询发送通知,在这种情况下,在我的Firebase数据库中选择 send notification if MenuId=01
,希望您能提供帮助,谢谢 .
if (request.getFoods().isEmpty()) {
Toast.makeText(Cart.this, "Your cart is empty", Toast.LENGTH_SHORT).show();
} else{
final DatabaseReference MyMenuId = FirebaseDatabase.getInstance().getReference("foods");
final Query data = MyMenuId.orderByChild("MenuId").equalTo("01"); // get all node with menuID=01
试图找出如何在此 MenuId=01
上设置一个条件,仅在选择此MenuId时发送通知:
data.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String order_number = String.valueOf(System.currentTimeMillis());
requests.child(order_number).setValue(request);
// Delete Cart
new Database(getBaseContext()).cleanCart();
Toast.makeText(Cart.this, "You have ordered from menu 1", Toast.LENGTH_SHORT).show();
finish();
sendNotificationOrder(order_number);
Toast.makeText(Cart.this, "You did not order from menuId 1", Toast.LENGTH_SHORT).show();
}**
2 回答
无论是否有结果,都会调用
onDataChange
. 要检查是否有实际结果,请使用dataSnapshot.exists()
:如果您需要实际处理结果,请记住以下几点 .
对Firebase数据库执行查询时,可能会有多个结果 . 因此快照包含这些结果的列表 . 即使只有一个结果,快照也会包含一个结果的列表 .
因此,您的代码需要通过遍历
dataSnapshot.getChildren()
来处理结果列表: