Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么谷歌在自己的文档中不推荐多租户应用程序使用Google Firebase?_Firebase_Google Cloud Platform_Firebase Authentication_Multi Tenant_Google Identity - Fatal编程技术网

为什么谷歌在自己的文档中不推荐多租户应用程序使用Google Firebase?

为什么谷歌在自己的文档中不推荐多租户应用程序使用Google Firebase?,firebase,google-cloud-platform,firebase-authentication,multi-tenant,google-identity,Firebase,Google Cloud Platform,Firebase Authentication,Multi Tenant,Google Identity,Firebase最佳实践文档中有一条警告,禁止将Firebase用于多租户应用程序: 这是我最担心的:“多租户可能导致严重的配置和数据隐私问题,包括分析聚合、共享身份验证、过于复杂的数据库结构和安全规则方面的意外问题。” 还有大量官方谷歌文档支持使用Firebase进行多租户,例如: 你知道为什么他们会有这些相互矛盾的建议和例子吗?使用Google Identity Platform是否解决了警告中提到的核心安全缺陷 我将重新发布这个问题,并在标题中作了进一步澄清,并对正文进行了一些编辑/删除,

Firebase最佳实践文档中有一条警告,禁止将Firebase用于多租户应用程序:

这是我最担心的:“多租户可能导致严重的配置和数据隐私问题,包括分析聚合、共享身份验证、过于复杂的数据库结构和安全规则方面的意外问题。”

还有大量官方谷歌文档支持使用Firebase进行多租户,例如:

你知道为什么他们会有这些相互矛盾的建议和例子吗?使用Google Identity Platform是否解决了警告中提到的核心安全缺陷


我将重新发布这个问题,并在标题中作了进一步澄清,并对正文进行了一些编辑/删除,以说明我只是想了解为什么这种广泛使用的产品在其官方文档中会有这样的警告。我删除了大多数主观的内容。我对这个问题没有任何相关的意见——我只是想了解这个警告。在上一个问题结束之前,似乎有一个很好的答案,因此我将在此链接以供参考:

如果您管理两个彼此无关的独立应用程序,那么这是有意义的。假设您有一个管理学校信息的应用程序,另一个是餐厅管理应用程序。现在,在本例中,我没有看到学校应用程序可能需要访问餐厅数据的任何事件

如果您使用同一个项目,那么所有firebase服务(身份验证、数据库、分析等)都将在它们之间共享。你很难对每个应用程序进行单独的分析。由于数据库是共享的,您必须通过在db中分隔路径来显式分隔两个应用程序的数据。(/apps/学校为学校,/apps/餐厅为餐厅)

也就是说,在学校应用程序上注册的任何用户都可以登录餐厅应用程序,而无需在那里创建新帐户,因为他们之间共享相同的项目

现在,如果你的客户每月向你支付Firebase费用,你无法区分学校客户应该支付多少。现在,即使这两个应用程序都是你的,如果你继续使用它,复杂性也会显著增加


这个问题不是一个主题问题:a)你的问题不是关于编程或软件开发的;b) 您的问题不存在可以在Stackoverflow指南范围内回答的问题;c) 你的问题征求意见。可能的答案是谷歌选择不支持Firebase的多租户。@JohnHanley很公平。我已经将一个答案标记为已接受,因为它基于对一个好的示例用例的理解提供了良好的上下文理解。而且,正如我在第二个链接中提到的,谷歌选择了支持它。这就是为什么我感到困惑。然而,我在他们的文档中,或者在许多解释Google Identity Platform(与Firebase auth合作)多租户的在线代码片段或教程中,找不到这种差异的解释,因此我认为社区可能会根据他们的经验给出答案;这不是一个坏问题,但对SO来说也不是一个好问题。话虽如此,底线是Firebase不是一个多租户平台,每个租户的数据和用户是分开的。这不是谷歌是否支持它,而是Firebase工作的内在本质。想象一下零售店的库存控制系统。商店和用户都是独立的(租户),相互独立,从不共享数据,但按照Firebase的构建方式,所有商店的所有数据都将“在一起”;这是一个安全/隐私问题,因此发出警告。@Jay感谢您的解释。我找到了这一资源:我是从技术角度来看的,但我想这一点可以应用到我的问题上:“向第三方服务(如应用商店)提供客户支持的问题与堆栈溢出无关。相反,请将您的问题提交给相关公司/组织的技术支持团队。”不幸的是,GCP很难获得技术支持,但这不是问题所在,哈哈。谢谢,这提供了良好的上下文理解。我想我明白了为什么他们会在Firebase托管的应用程序之外推荐它,例如在使用Google Identity Platform时。多租户的例子可以从Google App Engine运行,因此不一定会遇到同样的问题。另外,我认为你关于学校/餐厅应用程序的例子是他们在Firebase中警告的根源。正在对多个应用程序使用相同的Firebase应用程序。然而,在一个应用程序中有多个组织有点不同(在我的经验中更常见)。@David如果该应用程序管理多个学校(或你提到的组织),那么将其作为单个项目将是有意义的,因为当用户登录时,你将只显示与他们相关的信息。此外,db结构将是统一的,因为所有东西都是学校而不是餐厅。这就像用户创建服务器的不和谐。所有服务器都是相同的,并在一个数据库中进行管理。