【问题标题】:Firebase API REST cant filter data using orderBy [duplicate]Firebase API REST无法使用orderBy过滤数据[重复]
【发布时间】:2018-12-30 10:52:05
【问题描述】:

我正在尝试过滤我在 firebase 数据库中的数据。 我有这样一个非常简单的数据结构。

{
  "articulos" : {
    "-LHYw-qz8fiTSg03TuYS" : {
      "descripcion" : "refgre",
      "fabricante" : "gerg",
      "iva" : "21%",
      "margen" : "23",
      "nombre" : "greerfg",
      "preciocompra" : "3213",
      "preciocompraiva" : "12312",
      "precioventa" : "323",
      "precioventaiva" : "23",
      "ref" : "4greg"
    },
    "-LHYwfIIoN46cjlF3VTR" : {
      "descripcion" : "gdfgdfg",
      "fabricante" : "dfgdf",
      "iva" : "21%",
      "margen" : "45",
      "nombre" : "gfdgdf",
      "preciocompra" : "4345",
      "preciocompraiva" : "543",
      "precioventa" : "543",
      "precioventaiva" : "45",
      "ref" : "43g34g"
    },
    "-LHYwvK6xAQeXHQVrmtt" : {
      "descripcion" : "fdsf",
      "fabricante" : "fdsf",
      "iva" : "21%",
      "margen" : "34",
      "nombre" : "dfsfsd",
      "preciocompra" : "sdfsd",
      "preciocompraiva" : "dfsd",
      "precioventa" : "43",
      "precioventaiva" : "34",
      "ref" : "432"
    }
  },
  "clientes" : {
    "-LHjGlhQD4iP9DOsGgvx" : {
      "ciudad" : "rtbrtbrt",
      "comentarios" : "gfdgfd",
      "correo" : "brt@hotmail.com",
      "cp" : "43243",
      "direccion" : "tbrb",
      "dni" : "rtbrtb",
      "id" : 2,
      "nombre" : "5brtbtrb"
    },
    "-LHjHImLC3UBW3M2Rf3_" : {
      "ciudad" : "fmdkjsf",
      "comentarios" : ".comsfdasa",
      "correo" : "dkfmsldfm@jnfdjsn",
      "cp" : "32434",
      "direccion" : "fkdmfkjsd",
      "dni" : "mklrmg",
      "id" : 2,
      "nombre" : "gkjsdnfgd"
    }
  }
}

我一直在阅读文档,并且我已经阅读了有关 indexOn 的信息。

目前我有这个规则。

{  
 "rules": {
  ".read": true,
  ".write": true,

  "clientes": {
   ".indexOn": ["nombre"]
   }
  }
}

我不确定我是否做得很好.. 但是当我发送 de URL 时, /clientes.json?orderBy="nombre"&startAt=x

它正在检索我在数据库中拥有的所有“客户”...

我应该如何接收以“x”开头的所有“客户”...我正在尝试在我的网站中开发搜索输入...

【问题讨论】:

  • 乍一看,查询看起来是正确的。能不能把 JSON 的图片换成实际的 JSON 作为文本,让我试一试?您可以通过单击Firebase Database console 中的“导出 JSON”链接来获取此信息。
  • 您好!感谢您的回答,我将 img 替换为 JSON 文本!希望你能找到解决方案:P

标签: json firebase firebase-realtime-database


【解决方案1】:

当我将您的 JSON 添加到我的数据库时,它会按预期工作:

https://stackoverflow.firebaseio.com/51471121/clientes.json?orderBy="nombre"&startAt="x"

没有结果,因为没有以 x 或更高版本开头的名称。

但是:

https://stackoverflow.firebaseio.com/51471121/clientes.json?orderBy="nombre"&startAt="f"

给我一​​个结果,因为"nombre" : "gkjsdnfgd"f 之后。

【讨论】:

  • 所以...它有效吗? xD,所以我真的不明白它是如何工作的。我尝试了相同的方法,但是使用“5”...并且正在检索两个客户端...并且有一个带有“nombre”的“客户端”:“5brtbtrb”//顺便说一句...对不起那些奇怪的名字,我正在尝试我的表格:P
  • 我认为如果您发送它... clientes.json?orderBy="nombre"&startAt="5" ,您将只收到名称包含“5”的客户端。 .
  • Firebase 数据库只能做所谓的前缀过滤器,没有包含过滤器。因此,上面对所有客户端节点进行排序,然后找到以5 开头的第一个节点并从那里返回所有结果。另见stackoverflow.com/questions/22506531/…
  • 从我的 APP 中删除 firebase,这是什么鬼!?我没想到。看来我必须再次使用 MySQL。非常感谢弗兰克!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 2014-02-04
  • 2018-05-08
  • 1970-01-01
  • 2019-01-14
相关资源
最近更新 更多