我的数据结构(用户详细信息)
-KCV32vWQECRlMvlgkGO
Name: "asdf"
Phoneid: "1zlkflakfhkf0e8"
Phoneno: "9478567899"
-KCV3s-lwv5i-VvFBaxq
Name: "asas"
Phoneid: "1c584jbascjasc8"
Phoneno: "9999999999"
我的方法
queryRef.addChildEventListener(new ChildEventListener() {
public void onCancelled(FirebaseError arg0) {
// TODO Auto-generated method stub
}
public void onChildAdded(DataSnapshot arg0, String arg1) {
// TODO Auto-generated method stub
System.out.println("Size "+arg0.getChildrenCount());
}
如何获得2的计数?我得到3次两次,因为每次进入室内并分别得到 child 。
最佳答案
问题在于child_added
事件提供给您的快照是新的子数据。因此getChildrenCount()
会计算新 child (拥有3个)有多少个属性( child )。
要执行您想要的操作,您应该添加一个ValueEventListener
事件,如下所示:
queryRef.addValueEventListener(new ValueEventListener() {
public void onCancelled(FirebaseError arg0) {
}
public void onDataChanged(DataSnapshot arg0, String arg1) {
System.out.println("Size "+arg0.getChildrenCount());
}
});
每次值更改时,这应返回
queryRef
位置的所有子项(例如新的子项)。告诉我这是否可行,因为我自己无法尝试。