我的对象如下
我有通知,直到通知/ userId
如何检索status ='open'
的数据评论代码:
ref.orderByChild("status")
.equalTo('open')
.on("value", function(snapshot) { console.log(snapshot.key); });
答案 0 :(得分:0)
Firebase查询只能包含一个动态密钥。
在您的情况下,key1
/ key2
和datakey1
/ datakey2
下有两个动态键。您必须将其中一个放在固定位置(例如key1/my/status
,key2/my/status
),否则您必须以不同方式构建数据。
notificationsStatusPerUser
userId: {
key1_datakey1: {
status: "open",
path: "key1/datakey1"
}
key2_datakey2: {
status: "close",
path: "key2/datakey2"
}
}
}
现在,您可以找到特定用户的所有未清项目:
var query = ref.child('notificationsStatusPerUser')
.child(uid)
.orderByChild(status)
.equalTo('open');
query.on('child_added', function(snapshot) {
ref.child('notifications')
.child(uid)
.child(snapshot.val().path)
.once('value', function(linkedSnapshot) {
console.log(linkedSnapshot.val());
});
};