【问题标题】:How do I structure my Geofire posts in my firebase database如何在我的 firebase 数据库中构建我的 Geofire 帖子
【发布时间】:2016-08-07 08:44:46
【问题描述】:

我在所有其他帖子中注意到,任何带有子节点/键的节点/键都以引号保存在数据库中,而我的则没有。

我的

Locations{
    indexOn: "g"
}

其他/我认为应该是的

Locations{
        ".indexOn": "g"
    }

直到我遇到与this 类似的错误,并带有“.indexOn”。我尝试添加“.indexOn”,但我收到错误提示没有键可以有符号.(以及一些其他不允许的字符)所以我把它放在没有. 的情况下,如下所示:

Locations{ (specific id){ g: "345jh3i5jh" l{ 0: 37 1: -120 } indexOn: "g" user: "0987435098723098Gjhf90" } }

所以它似乎可以工作,因为observeEventType 有时会返回正确的结果,但它仍然给我一个错误,我需要将“.indexOn”放入数据库中。我该怎么做?


任何帮助和明确的示例将不胜感激,因为所有问题可能比我解决的问题更多。快速执行此操作,感谢您的阅读!

【问题讨论】:

  • 请限制每个帖子的一个问题,并提供重现问题所涉及问题的最少代码。对于您的第一个问题,我现在无法理解问题所在。
  • 我已经解决了第二个问题,因为我能够解决第一个问题。感谢您查看@FrankvanPuffelen,我看到您正在成为 stack 上 firebase 的专家
  • 彻底解决了我的问题!!谢谢!!!

标签: swift firebase firebase-realtime-database geofire


【解决方案1】:

您似乎正在尝试将索引定义添加到您的数据库中。这确实是确保服务器可以在将结果返回到您的应用程序之前对数据进行排序和过滤的好方法。

通过将索引添加到 Firebase 控制台 > 数据库 > 规则中的 Firebase 数据库规则来定义索引。不要尝试将它们添加到您的实际数据库中,因为:

  • 您将无法保存它们,因为它们的密钥中有 .,这是数据库中的非法字符
  • 添加它们无济于事,因为数据库服务器仅在数据库规则中搜索 .indexOn 定义

请参阅Firebase documentation on adding indexes 了解更多信息。

【讨论】:

    猜你喜欢
    • 2017-12-13
    • 2018-08-02
    • 2021-02-21
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2017-03-14
    相关资源
    最近更新 更多