我有一个应用程序,每当用户注册使用 Google电子邮件提供商并且用户被推送时, user.getEmail 就会存储在数据库中根据其唯一的Firebase随机ID生成的firebase数据库。 如何在 Authenticated-Users 节点下统计所有这些随机ID ?
正如您在图片中看到的那样,我基本上有两个用户,我想要计算这些生成的ID,例如 2 。
更新如果不可行,那么如何知道所有数据何时满载 ???
答案 0 :(得分:2)
使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child("Authenticated-Users");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long count = dataSnapshot.getChildrenCount();
Log.d("TAG", count + "");
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);
或者像这样迭代孩子:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child("Authenticated-Users");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int count = 0;
for(DataSnapshot ds : dataSnapshot.getChildren()) {
count = count + 1;
}
Log.d("TAG", count + "");
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);
答案 1 :(得分:0)
您可以获得给定路径|位置的子项,如:
dBPathRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(dataSnapshot.getChildrenCount()+"Count");
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});