所以我试图在这个结构中找到数据“aaaaabbbbbbaaaa”:
disney
studentList
-Jh46tlaNFx_YmgA8iMJ: "aaaaabbbbbbaaaa"
-Jh474kAvoekE4hC7W3b:"54ce1cbec4335cd3186105dc"
我用过这个
var ref = new Firebase("https://disney.firebaseio.com/");
ref.child("studentList").orderByKey().equalTo("54ca2c11d1afc1612871624a").on("child_added", function(snapshot) {
console.log(snapshot.val());
});
但我什么都没回来。哪里错了? 我该怎么用?
答案 0 :(得分:19)
在您提供的数据样本中,studenList
下没有键 54ca2c11d1afc1612871624a
的节点。
您的密钥为-Jh46tlaNFx_YmgA8iMJ
和-Jh474kAvoekE4hC7W3b
。您可以通过以下方式轻松确定:
ref.child("studentList").orderByKey().on("child_added", function(snapshot) {
console.log(snapshot.key()); // on newer SDKs, this may be snapshot.key
});
您似乎希望按其值排序节点,但这不是Firebase目前可用的操作。 Firebase只能query children by a value of a named property,key或其priority。因此,如果您将数据结构更改为:
disney
studentList
-Jh46tlaNFx_YmgA8iMJ:
name: "aaaaabbbbbbaaaa"
-Jh474kAvoekE4hC7W3b:
name: "54ce1cbec4335cd3186105dc"
您可以通过以下名称获取儿童订单:
ref.child("studentList")
.orderByChild("name")
.equalTo("54ca2c11d1afc1612871624a")
.on("child_added", function(snapshot) {
console.log(snapshot.val());
});
只是一个侧节点:如果您的实际节点值与您提供的示例中的节点值类似,您可能需要考虑使用这些值作为键;对于我未经训练的眼睛来说,它们似乎已经非常独特了。
答案 1 :(得分:0)
我想它是在您提出问题后添加的,此处https://firebase.google.com/docs/database/admin/retrieve-data?hl=en#ordering-by-value的解决方案可以立即满足您的需求:
wp plugin install jetpack