使用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();