【问题标题】:How do I start the Firebase Storage Emulator with production bucket data?如何使用生产存储桶数据启动 Firebase 存储模拟器?
【发布时间】:2021-11-27 01:16:09
【问题描述】:
我正在使用 Firebase 模拟器来运行所有 Firebase 服务。我已经设法通过运行以下命令来运行模拟器并备份我的 Firestore 数据:
firebase emulators:start --import ./my-directory
...但我找不到对存储数据执行相同操作的方法。
【问题讨论】:
标签:
firebase
google-cloud-firestore
google-cloud-storage
firebase-storage
【解决方案1】:
Firestore 可以选择导入和导出,而 Firebase 存储还没有此功能(存储使用上传和下载)。目前,没有本地方法可以在 Storage Emulator 中导入 Google Cloud Storage 数据。
此外,您可以通过在模拟器中上传示例文件然后运行导出来研究模拟器如何注册对象,您将看到模拟器将需要 1 个对象和 1 个包含其元数据的 JSON 文件。目前,您可以从生产存储桶中下载对象以及包含其元数据的单独 JSON 文件,然后对其进行结构化以供导入。
在 github 中还有一个opened issue,您也可以对其进行监控。
【解决方案2】:
虽然@RJC的回答是正确的,但还是想分享一下我的做法。
您可以在启动模拟器时添加选项--export-on-exit,它会将本地 Firebase 实例的状态导出到您选择的文件夹中。因此,我从真实的 Firebase 项目中下载了所有数据,使用模拟器上传了所有内容,然后关闭了模拟器,导出了所有内容(包括存储),现在我使用导出所有内容的同一文件夹使用 --import 选项启动它。
这并不是很糟糕,因为我的存储空间中没有那么多东西。