3 回答

TA贡献1801条经验 获得超16个赞
有几种方法可以实现此目的。我使用以下方式:
FirebaseDatabase.getInstance()
.getReference()
.child("demografi")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnap : dataSnapshot.getChildren()) {
YourObject object = dataSnap.getValue(YourObject.class);
// Use your object as needed
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
dataSnapshot返回被引用的子级。一旦拥有了它,您所要做的就是遍历它们,您可以根据需要访问“所有孩子”。

TA贡献1834条经验 获得超8个赞
FirebaseDatabase.getInstance()
.getReference()
.child("demografi")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
/** Qty of data in demografi, this is what you want. */
long Count = dataSnapshot.getChildrenCount();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
如果您想实时监控数据计数,
您必须将[addListenerForSingleValueEvent]替换为[addValueEventListener]。

TA贡献1871条经验 获得超13个赞
我会更喜欢这种方式-
String email, gender, nama;
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("demografi");
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
// To get children count
dataSnapshot.getChildrenCount();
email = dataSnapshot.child("email").getValue().toString();
gender = dataSnapshot.child("gender").getValue().toString();
nama = dataSnapshot.child("nama").getValue().toString();
// and so on..
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s){
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
添加回答
举报