在我的React Native App中,我目前正在尝试从数据库中提取所有selected
属性设置为“true”的项目。但是,当我记录此查询的结果时,它们都被返回为null
(即使预期的响应应该返回两个对象)。我的相关代码以及Firebase结构如下所示,如果您发现任何问题,请告诉我。
const rootRef = new Firebase(`${ config.FIREBASE_ROOT }`)
var queryRef = rootRef.orderByChild("items/selected");
var solution = queryRef.equalTo("true").once('value', function(snap) {
console.log(snap.val())
});
Firebase JSON:
"items":
[
{
"title":"ball",
"selected": "false"
},
{
"title":"dog",
"selected": "true"
},
{
"title":"phone",
"selected": "false"
},
{
"title":"cup",
"selected": "true"
}
],
答案 0 :(得分:0)
在某个位置运行Firebase查询时,它会将该位置下的每个子节点都计算在内,然后评估您指定的条件。如果您将每个孩子都放在items
下,那么您会看到那里没有路径items/selected
。
您的查询是:
var itemsRef = rootRef.child("items");
var queryRef = itemsRef.orderByChild("selected");
答案 1 :(得分:0)
您应该使用
where("selected" = true)
而不是equalTo()