过滤具有特定属性值的记录

时间:2016-09-22 18:07:56

标签: android firebase firebase-realtime-database

我的Firebase存储空间如下所示 -

{
    notes: {
        note_1: {
            $uid: 0 | 1,
            title: "",
            description: "",
            priority: "",
            state: "",
            time: 0
        },
        note_2: {
            ...
        }
    }
}

其中$ uid是用户ID。

我已经配置了这样的规则 -

{
    "rules": {
        "notes": {
            "$note_id": {
                ".read": "data.child(auth.uid).exists()",
                ".write": "(auth != null && !data.exists()) || data.child(auth.uid).val() === 1"
            }
        }
    }
}

现在,我想查询特定用户的所有笔记。我尝试使用以下代码 -

mDatabase.child("notes").orderByChild(getLoggedInUserId())
    .addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Log.d(getClass().getCanonicalName(), Long.toString(dataSnapshot.getChildrenCount()));
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

但是,这不起作用,因为我没有阅读"笔记"

有人可以建议如何检索这样的数据吗?

1 个答案:

答案 0 :(得分:0)

更改子项的orderByChild

mDatabase.child("notes").child(getLoggedInUserId()