如何从Firebase Android读取多个随机密钥数据

时间:2020-07-19 10:43:44

标签: android firebase firebase-realtime-database

我正在尝试从android应用中的firebase读取数据。这就是它的样子。 firebase database structure

我想读取标记的数据。我能够阅读子类别的关键字。但无法读取id值。

这是我的代码:

dbCategories = FirebaseDatabase.getInstance().getReference("categories");

dbCategories.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if (dataSnapshot.exists()){
            for (DataSnapshot ds: dataSnapshot.getChildren()){
                String name = ds.getKey();
                String ids = ds.child("ids").getValue(String.class);

                Log.i(name, "onDataChange: "+ids);
            }
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

1 个答案:

答案 0 :(得分:2)

您无法连接到所需的根目录。例如, tcat2 ,您可以修改 id

必须指定要读取的路径。

您可以尝试以下方法:

dbCategories = FirebaseDatabase.getInstance().getReference("categories");

        dbCategories.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()){

                    for (DataSnapshot ds: dataSnapshot.getChildren()){
                       
                      String name = ds.getKey();
                       
                       for(DataSnapshot ds1 : ds.child(name).child("ids").getChildren()){   

                       String ids = ds1.getValue(String.class);

                        Log.i(name, "onDataChange: "+ids);

                       }

                       
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

希望我能对您有所帮助。

相关问题