使用Android获取Firebase实时数据库中最后一个节点的数组元素
如下图所示,我有一个名为使用Android获取Firebase实时数据库中最后一个节点的数组元素,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,如下图所示,我有一个名为冰箱的数据库“表”,其中有一个名为食品的孩子food是一个可以包含一个或多个元素的数组。 我想访问最后一个节点,获取食物元素并将它们添加到列表中,但我不知道如何操作 感谢您的帮助您可以按照并使用limitToLast()方法。firebase中的键按字母顺序排列。您可以尝试以下方法获取数据: mDatabase.child("fridge").child(fridgeId).child("food").addListenerForSingleValueEvent(
冰箱
的数据库“表”,其中有一个名为食品
的孩子food
是一个可以包含一个或多个元素的数组。
我想访问最后一个节点,获取食物元素并将它们添加到列表中,但我不知道如何操作
感谢您的帮助您可以按照并使用limitToLast()方法。firebase中的键按字母顺序排列。您可以尝试以下方法获取数据:
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);
}
}
});
首先,创建一个列表来存储这些值
List<String> food = new ArrayList<>();
其中,yourPushID
应该是生成存储食物的随机键的方式
其中mDatabase
是
DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
FirebaseDatabase.getInstance().getReference(“fridge”).orderByKey().limitToLast(1)
?谢谢,请您详细解释一下什么是yourPushID
,在哪里可以找到它?您是如何在数据库中生成那些LMd4Rtgb_7b77QXK-qZY密钥的?我从python脚本添加了数据,我不知道Firebase是如何生成密钥的谢谢,我现在不在家,我可以在我到达那里时编辑我的问题,但基本上它们是按键,所以你需要获得每个按键才能访问每个食物数据,你可以研究一下,这是用getKey()方法完成的谢谢,我会查一下的,你能解释一下fridgeId是什么吗?我在哪里能找到它?
DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();