我的数据结构(userdetails)
-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次,因为每次进入并分别生孩子。
答案 0 :(得分:4)
问题是child_added
事件为您提供的快照是新的子数据。因此getChildrenCount()
计算新孩子拥有的属性(子女)的数量(并且它有3个)。
要做你想做的事,你应该像这样添加一个ValueEventListener
事件:
queryRef.addValueEventListener(new ValueEventListener() {
public void onCancelled(FirebaseError arg0) {
}
public void onDataChanged(DataSnapshot arg0, String arg1) {
System.out.println("Size "+arg0.getChildrenCount());
}
});
每当值发生变化时,这应该返回queryRef
位置的所有孩子(例如新孩子)。
告诉我这是否有效,因为我无法亲自尝试。