【问题标题】:How to do sql like query in firebase?如何在firebase中进行类似sql的查询?
【发布时间】:2019-03-26 07:01:00
【问题描述】:

如果我的查询如下所示,我如何查询 firebase:

Select * from table where employment="teacher" or employment="programmer"

【问题讨论】:

  • 你为什么要这样做? Firebase 没有表(SQL 结构),所以你不能这样做
  • 我想找一个叫做就业的孩子,它具有教师或程序员的价值
  • 我知道 orderedByChild 和 queryEqualToValue 但 queryEqualToValue 有一个参数。遇到or怎么办。
  • 获取所有就业记录并使用 swift 内置方法手动过滤。 Firebase 太快了,您会立即获得结果,不用担心

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

firebase 实时数据库中没有类似的查询。您可以使用以下查询:

Method              Usage
queryOrderedByKey   Order results by child keys.
queryOrderedByValue Order results by child values.
queryOrderedByChild Order results by the value of a specified child key or nested child path.

https://firebase.google.com/docs/database/ios/lists-of-data#sort_data

要解决您的问题,您可以将数据库更改为以下内容:

users
 pushId
    name       : peter
    employment : programmer
    group      : teachProg
 pushId
    name       : john
    employment : teacher
    group      : teachProg

然后使用queryOrderByChild("group").queryEqualToValue("teachProg"),您将能够检索到所有程序员或教师用户

【讨论】:

    【解决方案2】:

    Firebase 数据库是基于图形的数据库,专注于寻找解决方案的最佳路径。它不像sql那样工作并且支持像sql这样的查询。 虽然您可以执行各种操作,如 queryOrderedByKey、queryOrderedByValue、queryOrderedByChild 等。

    对于使用 firebase 数据库的参考项目: https://github.com/rheyansh/RFirebaseMessaging

    更多操作: https://firebase.google.com/docs/database/ios/lists-of-data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多