我正在考虑使用Firebase作为MBaaS,但是我找不到任何可靠的解决方案来解决以下问题:

我想建立两个独立的Firebase环境,一个用于开发,一个用于生产,但我不想手动复制功能(例如。开发和生产环境之间的远程配置设置、通知规则等)。

有什么我可以依赖的工具或方法吗?从头开始设置远程配置或通知规则可能是一项艰巨的任务,风险太大。

有什么建议吗?有没有比拥有两个独立环境更好的方法呢?

在你发表另一个解释如何建立独立Firebase帐户的问题答案之前:这不是问题,再读一遍。问题是:如何在独立的开发帐户和prod帐户之间转移更改或任何比在它们之间手动复制更好的解决方案。


当前回答

我们的方法是为不同的环境创建不同的json键文件。我们已经使用了谷歌推荐的服务帐户特性,并且有一个开发文件和另一个用于生产

其他回答

我的做法是:

我在firebase上有2个项目-一个用于DEV,另一个用于PROD 在本地,我的应用程序也有两个分支——一个叫DEV,另一个叫PROD 在我的DEV分支中,我总是有DEV firebase项目和PROD的JSON文件

这样我就不需要维护我的json了。

我正在根据我刚刚找到的信息更新这个答案。

步骤1

在firebase.google.com中,创建多个环境(即;Dev, staging, prod)


mysite-dev

mysite-staging

mysite-prod


步骤2

a.移动到你想作为默认值的直接位置(即;dev)

b.执行firebase deploy命令

c.部署完成后,执行firebase use——add命令

d.会出现一个选项,让你从当前拥有的不同项目中进行选择。

滚动到您想要添加的项目:mysite-staging,并选择它。

e.然后您将被要求为该项目提供一个别名。输入暂存。

再次为prod和dev运行a-e项,这样每个环境都将有一个别名


了解你所处的环境

使用firebase运行 默认(mysite-dev)

* dev (mysite-dev)

分期(mysite-staging)

刺激(mysite-dev)

(其中一个环境的左边会有一个星号。这就是你现在的处境。它也将以蓝色突出显示)


在环境之间切换

运行firebase使用staging或firebase使用prodiver在它们之间移动。

进入所需的环境后,运行firebase deploy,项目将部署到该环境中。

这里有一些有用的链接…

CLI参考

部署到多个环境

希望这能有所帮助。

本文描述了调试和发布构建类型的一种非常简单的方法。

简而言之:

在Firebase上为每个构建类型使用不同的应用程序id后缀创建一个新应用程序。 使用最新的JSON文件配置您的Android项目。 使用applicationIdSuffix,根据构建类型更改应用程序Id以匹配Firebase上的不同应用程序。

=>参见博客文章的详细描述。

如果你想使用不同的构建风格,请阅读firebase官方博客上的这篇文章。它包含很多有价值的信息。

希望有帮助!

如果您正在使用firebase-tools,有一个命令firebase use可以让您设置用于firebase部署的项目

Firebase use -add会弹出一个项目列表,选择一个,它会问你一个别名。从那里你可以使用firebase别名和firebase部署将推送到该项目。

在我个人使用中,我在Firebase控制台中有my-app和my-app-dev两个项目。

正如每个人都指出的那样,你需要不止一个项目/数据库。

但是为了回答你关于需要能够将设置/数据等从开发复制到生产的问题。我也有同样的需求。在几个月的开发和测试中,我不想手动复制数据。

我的结果是将数据备份到一个存储桶,然后从那里将其恢复到另一个数据库。这是一种相当粗糙的方法——我做了整个数据库备份/恢复——但是您可以从这个方向寻找一种更可控的方法。我还没有用过它——它很新——但这可能是一个解决方案:NPM Module firestore-export-import

编辑:Firestore备份/导出/导入信息在这里云Firestore导出和导入数据

如果你使用的是Firebase RTDB,而不是Firestore,这个文档可能会有帮助: Firebase自动备份

您将需要正确地设置权限,以允许您的生产数据库访问与您的开发相同的存储桶。 祝你好运。