答案 0 :(得分:0)
您可以获取父“论坛”节点的所有子节点。只需使用getChildren()方法。然后只需在位置索引处随机选择一个子节点。
DataSnapshot snapshot = dataSnapshot.child("Forums");
Iterable<DataSnapshot> children = snapshot.getChildren();
for (DataSnapshot child: children) {
Object obj = child.getValue(Object.class);
}
答案 1 :(得分:0)
首先你应该编写你的班级模型&#34; FormusModel&#34; 来存储来自服务器的数据 你可以用这个
> >
rootRef.child("Forums").addChildEventListener(new
> ChildEventListener() {
> > @Override
> > public void onChildAdded(DataSnapshot dataSnapshot, String s) {
> > ForumsModel model = dataSnapshot.getValue(FormusModel.class);
//now you can use model.getname();....
> }
注意:你必须实现另一种方法,例如 onChildCahnge 监听器
答案 2 :(得分:0)
要显示Forums
节点下所有子节点的值,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference forumsRef = rootRef.child("Forums");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("name").getValue(String.class);
String ques = ds.child("ques").getValue(String.class);
String title = ds.child("title").getValue(String.class);
String uid = ds.child("uid").getValue(String.class);
Log.d("TAG", name + " / " + ques + " / " + title + " / " + uid);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
forumsRef.addListenerForSingleValueEvent(valueEventListener);