【问题标题】:Retrieve only 1 dataset out of many dataset in Firebase从 Firebase 的许多数据集中仅检索 1 个数据集
【发布时间】:2018-04-05 21:26:11
【问题描述】:

我想从 Firebase 中的 3 个数据集中检索 1 个数据集。我正在使用 Firebase RESTful api 来做到这一点。

我尝试使用参数,但我一直得到所有 3 个数据集而不是 1 个。

https://mydatabase.firebaseio.com/user.json?Name=Alan

这就是我的数据在 JSon 中的样子

{
     "1234567": {
          "Name": "Alan",
          "Department": "Retail Team"
     },
     "7894563": {
          "Name": "Joe",
          "Department": "Sales Team"
     },
     "9876543": {
          "Name": "Tammy",
          "Department": "Customer Service"
     }
}

【问题讨论】:

  • 这在the docs about filtering中有解释
  • @AndréKool 我阅读了这个文档,我尝试了一个简单的文档(问题区域中显示了示例)。我尝试使用Name 参数,但它不起作用
  • 无意冒犯,但看起来您并没有尝试过。如文档中所示,您问题中的示例不包括 orderBy equalTo
  • @AndréKool 没有冒犯,但是,过滤部分是当我需要它按特定顺序排列时,例如该文档示例中给出的Height。但就目前而言,我只需要通过Name 检索。文档的其余部分讨论了我还不需要它的复杂过滤。
  • 我认为你读错了,但我们不要讨论这个问题。你可以试试这个:https://mydatabase.firebaseio.com/user.json?orderBy="Name"&equalTo="Alan"

标签: json rest firebase firebase-realtime-database


【解决方案1】:

如果您想使用 REST api 过滤数据,您必须将 orderBy 添加到您的参数中以指定您要过滤的字段。 (它实际上对客户端的订购没有任何作用)在这种情况下,您必须将它与equalTo 结合起来,如the docs 中所述。结果将是这样的:

https://mydatabase.firebaseio.com/user.json?orderBy="Name"&equalTo="Alan"

为了完成这项工作,您还需要在数据库规则中 add an index,如下所示:

{
  "rules": {
    "user": {
      ".indexOn": ["Name"]
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多