如何在firebase中进行类似sql的查询?

Posted

技术标签:

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

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

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

【问题讨论】:

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

【讨论】:

以上是关于如何在firebase中进行类似sql的查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用颤振在firebase中进行查询?

如何在firebase实时数据库中获取“序列”或类似结构的计数器

SwiftUI Firebase - 如何查询文档然后更新?

如何将查询中的数据保存在字符串数组中,Firebase iOS?

firebase 相当于 sql where in ()

如何在 Firebase 云 Firestore 中查询一个字段然后按另一个字段排序?