我的数据结构(userdetails)
-KCV32vWQECRlMvlgkGO
Name: "asdf"
Phoneid: "1zlkflakfhkf0e8"
Phoneno: "9478567899"
-KCV3s-lwv5i-VvFBaxq
Name: "asas"
Phoneid: "1c584jbascjasc8"
Phoneno: "9999999999"
Run Code Online (Sandbox Code Playgroud)
我的方法
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());
}
Run Code Online (Sandbox Code Playgroud)
如何计算2?我得到3次,因为每次进入并分别得到孩子.
问题在于事件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());
}
});
Run Code Online (Sandbox Code Playgroud)
queryRef每次值更改时,这都应返回该位置的所有子项(例如新子项)。
告诉我这是否有效,因为我自己无法尝试。
| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |