首页 > 解决方案 > 使用不同的数据进行生产和开发 Firebase 站点

问题描述

我有一个带有谷歌云构建触发器的 CI/DC 管道,可以根据我推送到的分支将我的代码部署到不同的站点。开发站点是一个实时测试——在我合并到 master 之前的最后检查,这会触发将 master 部署到生产站点。

目前,两个站点使用相同的 firebase Firestore db,并且在开发站点上更改的任何文档也将在生产站点上进行更改。

我要避免的是创建另一个 firebase 项目来将开发代码推送到不同的数据库,因为这意味着我需要一组单独的凭据,并且每次更改它们时都会将相同的功能复制到新项目中。这是不可维护的,而且工作量很大。

我想要的是某种方式让开发站点只能访问部分 Firestore 数据库,而生产站点可以访问另一部分。

人们如何做到这一点?甚至可能吗?有没有更好的办法?我能想到的另一种选择是使用身份验证并创建单独的帐户以使用不同的访问权限进行测试,但这似乎是一种变通方法,而不是理想的解决方案。

标签: firebasefirebase-hostinggoogle-cloud-build

解决方案


您尝试做的事情听起来比使用多个项目要麻烦得多,这是记录在案且强烈推荐的解决方案。将所有内容放在一个项目中是 Firebase 和 Google Cloud 中的一种巨大反模式,从长远来看,这会给您带来更多问题,此外,如果您设法在该项目中错误配置某些内容,还会增加灾难性故障的风险。

如果您应用一些脚本来自动化工作,那么拥有多个这样的项目是完全可维护的。这很常见,我强烈建议您考虑一下这对您有何帮助。

您的 CI/CD 管道绝对可以从源代码控制中检查您的更新,并将它们部署到您设置的任何其他项目环境中。管理用于 CI/CD 的不同凭据和配置是很常见的。


推荐阅读