我的数据结构(用户详细信息)

-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位置的所有子项(例如新的子项)。

告诉我这是否可行,因为我自己无法尝试。

09-28 07:41