当前位置: 首页 > 知识库问答 >
问题:

Firebase查询未从数据库返回任何结果

范安歌
2023-03-14

我正在尝试在Firebase中进行简单搜索以从我的Firebase数据中返回数据,但没有任何返回

JSON结构

{
    "-JZQzhqTI6NUQMfgHwQc" : {
        "Divisions" : {
            "-JZLh2UYKi5IvphLtX4I" : true,
            "-JZLh2Uc5HhffF1ki4H1" : true
        },
        "SportTypes" : {
            "-JZLOh7KtM78I5wAL6Ua" : true
        },
        "name" : "winnipegjets",
        "nickname" : "Jets",
        "teamname" : "Winnipeg Jets"
    }
}

我的Firebase搜索代码如下

   new Firebase("https://sizzling-fire-6197.firebaseio.com/teams")
            .startAt('Winnipeg Jets')
            .endAt('Winnipeg Jets')
            .once('value', function(snap) {
                console.log('matching team is', snap.val())
            });

但一旦代码被执行,它就会返回null。还有一种方法可以搜索特定字段。

共有2个答案

华聪
2023-03-14

如果您没有设置优先级。然后需要orderByChild,以便firebase返回结果。在您的情况下:

new Firebase("https://sizzling-fire-6197.firebaseio.com/teams")
            .orderByChild('teamname')
            .startAt('Winnipeg Jets')
            .endAt('Winnipeg Jets')
            .once('value', function(snap) {
                console.log('matching team is', snap.val())
            });
曹涵润
2023-03-14

看起来您有一个团队集合,第一个团队位于名为JZQzhqTI6NUQMfgHwQc(可能是通过调用push生成的)的节点中。它有一个值为winnipegjets的属性名,以及一个值为Winnipeg Jets的属性teamname。

在Firebase查询中,您可以通过两种方式过滤节点:

  • 按他们的名字
  • 按其优先级

您的节点名为JZQzhqTI6NUQMfgHwQc,并且具有优先级(您发布的JSON中没有显示)。这是您可以过滤的仅有的两个值。

如果您还没有使用优先级,您可以考虑将nameteamname设置为优先级(查看setPrity的留档)并过滤它。

看起来您已经在尝试使属性名唯一。在这种情况下,可以考虑按如下方式创建结构:

{
    "winnipegjets" : {
        "Divisions" : {
            "-JZLh2UYKi5IvphLtX4I" : true,
            "-JZLh2Uc5HhffF1ki4H1" : true
        },
        "SportTypes" : {
            "-JZLOh7KtM78I5wAL6Ua" : true
        },
        "nickname" : "Jets",
        "teamname" : "Winnipeg Jets"
    }
}

代码如下:

var ref = new Firebase('https://sizzling-fire-6197.firebaseio.com/teams');
ref.child('winnipegjets').set(...);
 类似资料:
  • 问题内容: 我正在尝试使用value从数据库中获取汽车。我尝试调用值为52 的方法,并检查数据库中是否存在值为52 的汽车。为什么不退还给我? 问题答案: 打电话一次,不要两次。您前进到结果的第一行,然后前进到第二行。由于查询未返回两行,因此不会获得第二行。您跳过了想要的行。

  • 我在使用MongoDB查询时遇到问题。每当我尝试通过ID或任何其他字段查找时,我总是得到零结果返回。我也很难使用“like”操作符。 我想以不区分大小写的方式查询书名。而且我知道你可以在MongoDB中这样做: 我试着装腔作势地做,但我不能让它起作用: 我看到控制台上打印出以下行:{“title”:{“$regex”:“/^harr.*/I”}} 我也尝试过一个文档,但也不成功: 结果却是零。 这

  • 我正在使用火库实时数据库函数 .orderByChild() 和 .equalTo() 来获取要更新的数据节点。但是,我似乎无法从查询中获得任何结果。 我的数据库结构 我的代码 代码日志 senderSnapshot null senderSnapshot金额0 我已经手动检查了有几个节点,其中“sid”设置为我正在寻找的“userId”。 为什么我的查询没有得到任何结果? 看起来我必须搜索dbR

  • 问题内容: 我正在尝试向表中插入一些行…我正在使用 postgressql-7.2.jar。 我得到以下异常 org.postgresql.util.PSQLException:查询未返回任何结果。 在org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255) 我已经用Googl

  • 问题内容: 这是我的架构 我做了这样的一个NEST查询: 并返回零元素! 如果我查看数据库(使用邮递员),则可以看到我的文档: 问题答案: 听起来您可能没有在为文档建立索引 之前 将类型的映射显式地放入索引中,所以Elasticsearch已基于所看到文档中字段的默认映射来推断该映射。例如,给定以下类型 如果我们按以下方式索引一些文档 在控制台中输出以下内容 我们没有匹配的文件。在Elastics

  • [root@externalsystem~]#curl-xpost-h'请求:{“request”:“prepareandexecute”,“connectionid”:“000000-0000-0000-00000000”,“stateMentID”:12345,“sql”:“select*FROM questtweets1”,“maxrowcount”:1}'http://here.comes