是否有任何工具可以帮助将数据从 dev 迁移到 staging 到 prod?如果没有,是否有建造它们的计划?
我知道您可以从 Forge 导出 JSON 和导入 JSON,但这不包括授权和安全设置。
是否有任何工具可以帮助将数据从 dev 迁移到 staging 到 prod?如果没有,是否有建造它们的计划?
我知道您可以从 Forge 导出 JSON 和导入 JSON,但这不包括授权和安全设置。
我们所有的数据都可以通过 REST API 获得,因此您可以轻松编写脚本来自己执行此操作。您可以通过设置 format=export 导出数据(这包括响应中的所有优先级数据):
curl https://myapp.firebaseIO.com/.json?format=export&auth=YOUR_FIREBASE_SECRET
至于导出安全规则,您可以在这里访问它们:
curl https://myapp.firebaseIO.com/.settings/rules/.json?auth=YOUR_FIREBASE_SECRET
然后,您可以使用 PUT 将它们写回新的 Firebase。
各种 Auth 设置不能轻易地自动传输(例如 Authorized Origins),但它们可能不应该如此,因为它们在 staging 和 production 之间会有所不同。
安德鲁上面所说的大部分是正确的,但是对于大型火力基地来说这可能是一个痛苦。https://github.com/firebase/firebase-import有一个导入项目,它将通过分解 put 请求来帮助导入大型 firebase。另外需要注意的是,您需要在 curl url 周围使用引号,否则 & 将成为该过程的背景。所以安德鲁上面给出的将改为
curl -o outputfile.json " https://myapp.firebaseIO.com/.json?format=export&auth=YOUR_FIREBASE_SECRET "
然后您可以使用我与该 json 文件链接的导入模块。
祝你好运!
如果你想要一个不需要 cURL 的选项,并且你已经firebase-tools
安装了项目,你可以运行这个:
firebase database:get --export -o backup.json /
请注意,这应该从配置为 Firebase 项目的工作目录运行。此选项的优点是它将使用您为该项目设置的身份验证,因此您无需将身份验证密钥硬编码到命令行中(出于安全意识),并且它不依赖于不推荐使用的身份验证密钥模式。
命令行 Fu:如果您想要为每个顶级键单独的文件,另一种很酷的技术是调用:
for i in `firebase database:get --shallow / | jq -r 'keys[]'`; do
echo "Downloading $i..."
firebase database:get --export -o $i.json /$i
done
您需要安装“jq”工具才能使其工作。如果您以后想要恢复或仅使用部分数据,则单独导出每个集合非常有用。
Firebase 正在开发一项新服务“S3 客户备份”,该服务将每晚将整个 Firebase 的 .gz 压缩备份复制到您提供给他们的 s3 存储桶中。我现在正在评估这项服务的测试版,但如果您需要它,我建议您寻求支持。
我们的 firebase 太大而无法完成 curl 操作,而这个新解决方案将使我们能够管理我们的开发环境。因此,如果您有一个大型火力库,请设置 S3 客户备份,然后使用 firebase-import 将数据推送到您的开发/暂存火力库中。胜利!
我刚刚创建了这个 ruby gem,用于从现有项目或新项目中克隆 firebase 远程配置数据。