firebase - 组织多个 Firebase 应用程序共享数据库的最佳方式,并通过单独的身份验证
问题描述
我是 Google Firebase 的新手,我正在开发两个将链接在一起的应用程序。这些应用程序将使用 Firebase 身份验证、云功能和 Firestore 数据库。
对于一个简单的用例,我们假设一个应用程序用于管理员,另一个应用程序用于普通用户。我想要单独的身份验证(即管理员可以转到用户应用程序并使用相同的电子邮件地址创建一个新的用户帐户)。但我也希望他们能够使用同一个 Firestore 数据库来访问信息。最后,我需要能够从两个应用程序调用相同的云函数集。
总结一下我的需求:
- 2 个应用程序
- 单独的身份验证(能够在两个应用程序上拥有具有相同电子邮件的帐户。拥有不同的密码并不是必需的 - 可以共享)
- 使用相同的 Firestore 数据库
- 使用相同的云功能
我相信我有两个选择
(复杂选项)
- 2 个独立的 Firebase 项目。完全独立的身份验证。指向同一个数据库。但不确定如何使云功能正常工作并正确验证用户
(更简单的选项)
- 1 个带有多个应用的 Firebase 项目。当新用户通过身份验证时,我必须向“用户”和“管理员”添加一条记录。在“管理员”下,用户将被禁用,直到手动更改标志(给予管理员权限)——有点烦人,但我可以让它工作。与更复杂的解决方案相比,这让我能够以最少的问题共享相同的 Firestore 数据库和云功能。
哪个选项最适合我的用例?还有其他我没有考虑的设计选择吗?(注意:我正在使用 react-native 开发我的应用程序(https://rnfirebase.io/))
解决方案
你在这里问的主要是意见问题。鉴于您在此处共享的详细信息,两者都绝对不比另一个更好。我建议选择你觉得更舒服的那个。
唯一不涉及任何意见的部分是,Firebase 推荐的拥有多个用户根本不打算重叠的应用程序的方法是使用多个项目。如果您希望同一组用户平等地应用于所有应用程序,那么您应该在每个项目中使用多个应用程序。
推荐阅读
- git - 是否可以强制“git diff”为不在存储库中的文件显示“相似度索引”
- c - C MPI 并行编程 - 分段错误 11 错误
- python - Pandas 数据框中的 Ping 主机
- javascript - Await 不是在等待 api post 完成,而是同时发生
- java - 生命游戏没有更新网格
- java - javafx Intellij IDEA 索引用户控件
- java - docx4j:docx 到 pdf 的转换 - docx 内容没有逐页显示为 pdf
- php - 在 PHP 中操作 post json
- lambda - 比在 java 8 中使用多个 if 更好的方法
- openmdao - 在 OpenMDAO 中创建“部分目标”