【问题标题】:Firebase matching substringFirebase 匹配子字符串
【发布时间】:2018-05-31 04:59:43
【问题描述】:

我有上面的 JSON 结构

我想获取 id 以“123”结尾的车辆列表

我曾尝试使用 Query.endAt() 方法,但我不确定我是否正确使用它或者它不应该提供所需的输出

Query vehiclesRef;
vehiclesRef = db.getReference("vehicles").orderByKey().endAt("\uf8ff123");

【问题讨论】:

  • 请添加您已经尝试过的代码并说明您遇到的问题。顺便说一句,这看起来不像一个合理的 JSON 结构。我希望“车辆”是一个数组。
  • 问题已编辑,谷仓。
  • 它给出了什么输出?
  • 没有区别,返回的是同一个数组。
  • 什么是query?它应该返回以 123 结尾的键的子项。要对其进行测试,请使用侦听器添加它并在某个键下检索一个子项,看看您是在这些键下获得所有子项还是仅在以 123 结尾的键下获得子项

标签: android firebase firebase-realtime-database


【解决方案1】:

Firebase 数据库查询只能执行前缀匹配,因此字符串以特定字符串开头 或以字符串范围开头。不能查询具有特定值的字符串结尾,也不能查询以某个值范围结尾的字符串。

如果您真的想在 Firebase 中执行此操作,还可以考虑将反转的字符串存储在数据库中:

"321_1_0"
"321_3_0"
"654_52_0"

然后就可以查询321开头的字符串了

vehiclesQuery = db.getReference("vehicles").orderByKey().startAt("321").endAt("321\uf8ff");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2021-08-25
    • 1970-01-01
    • 2011-03-20
    • 2014-05-23
    相关资源
    最近更新 更多