【发布时间】:2020-09-08 14:53:34
【问题描述】:
我正在评估 Firebase 以在 SaaS 模式下开发一个应用程序,让来自多家公司的人都可以访问它。公司中的每个人都应该只访问他们公司的数据,而不是其他公司的数据。同样在公司内部,每个人可以访问和不能定义的配置文件。
Firebase 文档建议不要使用多租户方法 (https://firebase.google.com/docs/projects/learn-more)。他的建议是为每家公司管理一个火力基地项目。我的疑问:这真的有必要吗?它会涉及在 PlayStore 中管理不同的应用程序吗?能否以编程方式创建 Firebase 项目?
另一方面,Google Cloud 推出了允许多租户 (https://cloud.google.com/identity-platform/docs/multi-tenancy-authentication) 的 GCIP 身份验证服务。我的疑问是: 1. 要将其与 Firebase 一起使用,我是否必须创建对 Firebase 和 Flutter 具有额外复杂性的后端服务? 2.是否可以在不丢失Firebase提供的离线访问属性的情况下使用该服务?
谢谢,
大卫
【问题讨论】:
-
想知道您是否有解决方案?我也有同样的情况。在启动时,我不想在每次需要添加列或更改结构时在 mysql 和迁移模式上浪费时间。在产品成熟之前,我需要一些灵活的东西来让步。
-
@EdenWebStudio 有什么更新吗?我目前正计划在 GCIP 中使用多租户,到目前为止它工作得很好,我看不出 Firebase 团队反对它的任何理由。我目前面临的唯一缺点是在 Flutter 应用程序中进行身份验证,因为它似乎不支持设置租户 ID,解决方法是调用云函数进行身份验证并返回身份验证令牌。
-
@jonas 我刚刚得到了 mysql 和 json 列。我无法理解如何为每个租户分区 firestore。文档不够清楚。你正在做的就是我会做的。调用函数意味着您可以在特权环境中应用额外的安全检查。
-
@EdenWebStudio with partition firestore 你的意思是像为每个租户使用不同的数据库?
-
@Jonas 是的。它仍将是同一个数据库,但租户操作的范围仅限于其分区。此链接在“数据存储模式”中讨论了 Firestore,但我可能误解了它们的意思。 cloud.google.com/datastore/docs/concepts/multitenancy
标签: android firebase flutter multi-tenant