firebase - 使用不同的数据进行生产和开发 Firebase 站点
问题描述
我有一个带有谷歌云构建触发器的 CI/DC 管道,可以根据我推送到的分支将我的代码部署到不同的站点。开发站点是一个实时测试——在我合并到 master 之前的最后检查,这会触发将 master 部署到生产站点。
目前,两个站点使用相同的 firebase Firestore db,并且在开发站点上更改的任何文档也将在生产站点上进行更改。
我要避免的是创建另一个 firebase 项目来将开发代码推送到不同的数据库,因为这意味着我需要一组单独的凭据,并且每次更改它们时都会将相同的功能复制到新项目中。这是不可维护的,而且工作量很大。
我想要的是某种方式让开发站点只能访问部分 Firestore 数据库,而生产站点可以访问另一部分。
人们如何做到这一点?甚至可能吗?有没有更好的办法?我能想到的另一种选择是使用身份验证并创建单独的帐户以使用不同的访问权限进行测试,但这似乎是一种变通方法,而不是理想的解决方案。
解决方案
您尝试做的事情听起来比使用多个项目要麻烦得多,这是记录在案且强烈推荐的解决方案。将所有内容放在一个项目中是 Firebase 和 Google Cloud 中的一种巨大反模式,从长远来看,这会给您带来更多问题,此外,如果您设法在该项目中错误配置某些内容,还会增加灾难性故障的风险。
如果您应用一些脚本来自动化工作,那么拥有多个这样的项目是完全可维护的。这很常见,我强烈建议您考虑一下这对您有何帮助。
您的 CI/CD 管道绝对可以从源代码控制中检查您的更新,并将它们部署到您设置的任何其他项目环境中。管理用于 CI/CD 的不同凭据和配置是很常见的。
推荐阅读
- excel - 如何使用MailMerge字段作为删除Word中一行表格的条件?需要 VBA 代码
- laravel - Laravel:获取插入的最后一个值(名称)
- haskell - 什么是偏序?
- php - Laravel:是否可以将用户的所有操作保存在日志或数据库中?
- javascript - 带有 Ajax 的模态窗口中的表单在 FF 中不起作用?
- maven - 子 pom 可以从自定义父 pom 的 spring-boot-starter-parent 继承插件管理和依赖管理吗?
- unity3d - MapBox 应用程序不显示地图。(地图盒 - 统一)
- sql - Oracle SQL - 为什么选择 to_char(to_date('31-DEC-18'),'YYYY-IW') from dual; 返回 2018-01?
- visual-studio-2019 - Visual Studio 2019 将 CTRL+CLICK 从“转到定义”更改为“转到实施”
- gulp - 如何在没有“原始未定义”和“断言错误”错误的情况下吞下任务