如下图所示,我有一个名为“ fridge
”的数据库“表”,它有一个名为“ food
”的子级。 food
是一个可以包含一个或多个元素的数组。
我想访问最后一个节点并获取食物元素并将其添加到列表中,但是我不知道该怎么做。
谢谢您的帮助
答案 0 :(得分:1)
您可以遵循docs并使用limitToLast()方法。 Firebase中的键按字母顺序排列。
答案 1 :(得分:0)
您可以尝试获取数据:
mDatabase.child("fridge").child(fridgeId).child("food").addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
String foodItem = postSnapshot.getValue();
foodList.add(foodItem);
}
}
});
答案 2 :(得分:0)
首先,创建一个列表来存储这些值。
List<String> food = new ArrayList<>();
获取每个冰箱钥匙中最后存放的食物
mDatabase.child("fridge").child(yourPushID).child("food").limitToLast(1).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
String lastFood = snapshot.getValue(String.class);
//Add your food to the list
food.add(lastFood);
Log.e("Foods found:",""+lastFood);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
yourPushID
应该是生成随机密钥存储食物的方式
mDatabase
在哪里
DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();