我试图展示所有的孩子"姓名"位于我的数据库树中。 My Database tree我使用地图来执行此操作:
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
我将所有数据显示到recyclerView中。但出于某些原因,而不是得到所有的名字(伊娃,史密斯,公主),我只是最新创造的一个&#34;公主&#34;在我的recyclerView布局(公主,公主,公主)中显示3次。任何人都知道我做错了什么?
答案 0 :(得分:0)
假设您有一个名为users
的节点,其中包含所有这些uid's
,请获取所有这些名称,请使用以下代码。是实现这一目标的最简单方法。
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);
希望它有所帮助。