Android 无法使用映射获取Firebase数据库中的所有子数据?

Android 无法使用映射获取Firebase数据库中的所有子数据?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我试图显示数据库树中的所有子“名称”。我使用了地图来做到这一点: GenericTypeIndicator<Map<String, Object>> m = new GenericTypeIndicator<Map<String, Object>>() {}; Map<String, Object> map = snapshot.getValue(m); String username = (String) map.get("name"

我试图显示数据库树中的所有子“名称”。我使用了地图来做到这一点:

GenericTypeIndicator<Map<String, Object>> m = new GenericTypeIndicator<Map<String, Object>>() {};
Map<String, Object> map = snapshot.getValue(m);
String username = (String) map.get("name");
displayName.setText(username);// Display the name
GenericTypeIndicator m=新的GenericTypeIndicator(){};
Map Map=snapshot.getValue(m);
字符串用户名=(字符串)map.get(“名称”);
displayName.setText(用户名);//显示名称

我正在将所有数据显示到recyclerView中。但由于某些原因,我没有得到所有的名字(伊娃、史密斯、公主),我是唯一一个在我的recyclerView布局(公主、公主、公主)中三次显示“公主”的人。有人知道我做错了什么吗

假设您有一个名为
users
的节点,其中包含所有
uid
,要获取所有这些名称,请使用下面的代码。这是实现这一目标的最简单方法

DatabaseReference yourRef = FirebaseDatabase.getInstance().getReference().child("users");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String userId = (String) dataSnapshot.getKey();

        DatabaseReference userIdRef = FirebaseDatabase.getInstance().getReference().child("users").child(userId);
        ValueEventListener eventListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                 String name = (String) dataSnapshot.child("name").getValue();
                 Log.d("TAG", name);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {}
        };
        userIdRef.addListenerForSingleValueEvent(eventListener);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);

希望能有所帮助。

谢谢您的回复,但您所说的uid inside.child(uid)是什么意思?
uid
是一个变量,用于您的
uid1
uid2
等。您需要有
uid
,以便在
数据库引用中使用它。我试图做的是让我的节点“users”中的所有子节点都命名为“name”。由于每个用户的uid总是不同的,所以我使用映射跳过用户的uid,以便只获取每个用户uid中的子“名称”。DatabaseReference yourRef=FirebaseDatabase.getInstance().getReference().child(“用户”).child(uid);我认为使用这个只能得到特定用户的值名,因为UID在这种情况下,
DatabaseReference
是错误的,因为代码工作正常。能否请您添加一个更详细的数据库图片,包括根目录?