equalTo从Firebase返回null?

时间:2016-05-09 02:58:58

标签: database reactjs firebase react-native

在我的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"
    }
], 

2 个答案:

答案 0 :(得分:0)

在某个位置运行Firebase查询时,它会将该位置下的每个子节点都计算在内,然后评估您指定的条件。如果您将每个孩子都放在items下,那么您会看到那里没有路径items/selected

您的查询是:

var itemsRef = rootRef.child("items");
var queryRef = itemsRef.orderByChild("selected");

答案 1 :(得分:0)

您应该使用

where("selected" = true)

而不是equalTo()