【问题标题】:Multitenant SaaS App using Firebase and Flutter使用 Firebase 和 Flutter 的多租户 SaaS 应用
【发布时间】:2020-09-08 14:53:34
【问题描述】:

我正在评估 Firebase 以在 SaaS 模式下开发一个应用程序,让来自多家公司的人都可以访问它。公司中的每个人都应该只访问他们公司的数据,而不是其他公司的数据。同样在公司内部,每个人可以访问和不能定义的配置文件。

  1. Firebase 文档建议不要使用多租户方法 (https://firebase.google.com/docs/projects/learn-more)。他的建议是为每家公司管理一个火力基地项目。我的疑问:这真的有必要吗?它会涉及在 PlayStore 中管理不同的应用程序吗?能否以编程方式创建 Firebase 项目?

  2. 另一方面,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


【解决方案1】:

我可能有一个可能的解决方案{我已经部分尝试过}

创建支持的主 API - 管理主 API 中的所有常见特性/功能

例如:CIM - 客户信息管理 UCID - 唯一的客户 ID {基于 mobileno+OTP} 客户端 ID - {ClientA,B,K,Y} 表示 UCID 属于这些客户端应用程序

ClientAPP - 为每个客户单独构建{在他们的应用商店中发布} 客户端应用程序 ID - 001 注册/登录 - 检查是否在 ClientID 中注册了 mobileno Endpoint API - 管理客户端特定数据 例如: 应用限制{国家、年龄等} 应用程序徽标 应用程序启动画面: 背景 = {图片/网址}

客户端应用程序 ID - 003 注册/登录 - 检查是否在 ClientID 中注册了 mobileno Endpoint API - 管理客户端特定数据 例如: 应用限制{国家、年龄等} 应用程序徽标 应用程序启动画面: 背景 = {渐变/代码}

sample-multi-tenant API management on Hasura

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2012-04-10
    • 2018-08-20
    相关资源
    最近更新 更多