如何防止 Firebase Firestore 模拟器在退出时清除数据库?

aka*_*han 3 firebase google-cloud-firestore

我计划使用 Firebase - Firestore 模拟器来处理来自 Websocket 的大量数据。

我只需要在本地实时处理数据。

Firestore Emulator 是一个不错的选择,因为它具有我需要的所有功能。但问题是每次关闭模拟器时它都会清除数据库。是否有任何配置或设置可以改变这种行为?

如果不可能。有人可以告诉我在本地使用 firestore 的任何其他方法吗?或我可以在本地使用的任何其他 firebase 替代品。

Biv*_*vis 18

我已经使用参数管理了这个启动 Firebase 模拟器,以便在退出时导出数据并导入现有的数据:

firebase emulators:start --import=exported-dev-data --export-on-exit=exported-dev-data
Run Code Online (Sandbox Code Playgroud)

这样,模拟器始终将我生成的数据导出到文件夹exported-dev-data,并在再次启动时将其加载回来。

  • @JeffNeet 我正在像你一样停止模拟器,在运行模拟器的终端窗口中使用 Ctrl+C 。这需要一段时间,但模拟器会停止。但我没有使用 Pub-sub,所以我不知道这是否是一个错误。但是您可以打开另一个终端窗口,并在尝试停止模拟器之前使用“firebase emulators:export export-dev-data”命令手动导出数据,它将在下次启动时使用上述命令加载 (4认同)

小智 11

随着 Firebase 模拟器的最新更新,您可以在模拟器运行时导出数据,并在它再次启动时导入。

导出数据

firebase emulators:export <export-directory>
Run Code Online (Sandbox Code Playgroud)

启动和导入模拟器

firebase emulators:start --import <export-directory>
Run Code Online (Sandbox Code Playgroud)

  • 现在,您还可以添加 [`--export-on-exit`](https://firebase.google.com/docs/emulator-suite/install_and_configure) 标志,以便在退出模拟器时自动导出数据。数不清有多少次因为忘记先导出而退出而丢失了一堆有用的测试数据! (6认同)
  • 不要运行 `firebase emulators:export`。如果失败,它会删除文件夹中的所有内容。不要犯我犯过的错误。:) (4认同)

Dou*_*son 2

目前,您需要编写代码来在模拟器每次运行期间填充数据库。

如果您希望看到不同的行为,请在 GitHub 上提交问题