【问题标题】:how can I query to firebase realtime database?如何查询 Firebase 实时数据库?
【发布时间】:2017-09-25 13:26:03
【问题描述】:

我正在使用 Firebase 开发一个 Android 应用。 它使用 Firebase Auth、实时数据库、存储。

并且该应用程序具有搜索功能。 例如,客户可以使用此功能搜索其他用户。 如果有用户“Yoonho Aaron Kim”,用户想使用“yoonho”、“aaron”、“kim”等关键字搜索该用户...

但 Firebase 查询并不支持所有这些。 它仅提供“startAt”、“endAt”、“equalTo”方法。 另外,我不能同时使用这三种方法。

由于这个限制,我正在考虑另一个模块,例如“Cloud SQL”、“App Engine”。 请问有什么好的办法吗?

【问题讨论】:

    标签: google-app-engine firebase firebase-realtime-database google-cloud-sql


    【解决方案1】:

    AppEngine 实际上不是数据库引擎,它是“构建应用程序和自动扩展的平台”,因此可以连接到不同类型的数据库:Cloud SQL(您提到的)关系 MySQL db(或 PostgreSQL)或Cloud Datastore,一个 NoSQL 数据库。

    使用 Cloud SQL,您确实可以在 WHERE 子句中使用 LIKE 运算符执行一些查询。使用 Datastore,您将获得与 Firebase 数据库相同的限制。

    但是,切换到 AppEngine 意味着您将停止使用 Firebase,并且您将寻求另一种解决方案来开发您的 API 并将其公开给您的 Android 应用,例如使用像 Google Endpoints (https://cloud.google.com/endpoints/) 这样的框架。

    【讨论】:

    • 谢谢!我还有更多问题,如果我选择“App Engine”,我应该使用“Cloud SQL”还是“Cloud Datastore”?你的意思是因为App引擎是一个平台,它不包含任何数据库对吧?
    • 您可以选择要与 AppEngine 一起使用的数据库、“Cloud SQL”或“Cloud Datastore”。因为在您的情况下,您显然会丢弃 Cloud Datastore(因为您无法使用“LIKE”运算符进行查询)并选择 Cloud SQL。但是,重要的是要注意,如果您这样做,您将做一些额外的工作:您必须开发 REST API 才能查询您的数据库,而这部分使用 Firebase 非常容易。
    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多