Google firebase - 如何与其他应用程序共享数据库

Posted

技术标签:

【中文标题】Google firebase - 如何与其他应用程序共享数据库【英文标题】:Google firebase - how to share database with other apps 【发布时间】:2017-03-20 23:21:30 【问题描述】:

我知道,firebase 有一个实时数据库,我已经使用了它。但它首先基于用户的身份验证。我想做的是让 firebase 实时数据库与其他应用程序共享其内容。就像 android 中的 ContentProvider 一样。

当我打电话时:

FirebaseDatabase database = FirebaseDatabase.getInstance();

这只会为我的应用程序获取 firebaseDatabase。我希望其他应用程序也能够使用实时数据库。他们如何连接到它?

更新: 从概念上讲,contentProvider 可以解决这个问题吗?因为 contentProvider 只是一个抽象,它不关心数据源是什么,而不是使用 sql 作为源,我可以使用 firebase db。然后,由于 firebase db 包装在 contentProvider 中,因此我可以公开一个 URI 供其他应用程序使用并公开 contentProvider。我将不得不对此进行更多研究,但应该是可能的,因为 contentProvider 是网络或本地数据源的包装器。虽然 ContentProvider.query 命令会返回一个游标,但不确定如何从检索到的 firebase 数据中创建一个游标。

【问题讨论】:

其他没有添加 Firebase 依赖的应用,你的意思是? 我不介意他们是否具有 firebase 依赖项。无论哪种方式都很好。我只是想要一种将我的 firebase 数据库暴露给其他应用程序的方法。 【参考方案1】:

选项 1 是实现一个自定义后端,作为通过某种身份验证访问数据的访问点。

选项 2 是公开您想要共享的所有数据,并在相关应用中获取对该数据库的引用。

选项 1 会更安全、更可靠,并且可以从一个地方进行配置。选项 2 会更容易实施。

【讨论】:

关于选项 2。你说在 firebase 仪表板中有一种方法可以让任何人都可以看到实时数据库?如果是这样,我不知道该怎么做。我只是在规则中更改它吗?我认为 Firebase 功能是每个应用程序的? 您必须能够将 services.json 添加到其他应用程序才能执行此操作。如果您想将数据共享给外部应用程序(您不发布等),选项 1 是您的选择。无论哪种方式,选项 1 都将是一个更可持续的系统 它只是以另一种方式来到我身边。因为 contentProvider 只是一个抽象,它不关心数据源是什么,而不是使用 sql 作为源,我可以使用 firebase db。然后,由于 firebase db 包装在 contentProvider 中,因此我可以公开一个 URI 供其他应用程序使用并公开 contentProvider。我将不得不对此进行更多研究,但应该是可能的,因为 contentProvider 是多个数据源的包装器,无论是网络还是本地 sql。你可以让查询命令返回我认为的任何东西。

以上是关于Google firebase - 如何与其他应用程序共享数据库的主要内容,如果未能解决你的问题,请参考以下文章

将 google firebase 分析与 iOS 操作扩展一起使用

Flutter Firebase 身份验证与 Google 应用程序崩溃

google 的 firebase 可以与 java 桌面应用程序一起使用吗?

将 Google 身份验证令牌与 Firebase 一起使用

如何将我的应用与 Firebase Crashlytics 集成?依赖问题

如何将 Google Play 游戏登录与 Firebase 身份验证结合使用