增量备份 Firestore 数据

Backing up Firestore data incrementally

我正在考虑为生产应用程序备份 Firestore 数据的最佳(读取自动化、成本最低且易于使用)方式。

我知道我可以通过预定的云功能自动导出并将它们发送到 gcloud 存储桶。我对这种方法的问题是它不允许“新文档和更新文档的增量更新”,而只能备份整个集合。这意味着每次都会备份大部分数据,即使自上次备份以来它甚至没有改变,无缘无故地飙升成本。

想到的方法是在“我的应用程序”项目中有一个云函数,它会监听 Firestore 中的每一个变化,并在“我的应用程序”的 Firestore 中执行相同的变化。备份”项目。

这样我只备份了变化的数据。此外,备份的数据永远不会过时(因为它是实时备份的),这与第一种自动备份的方法不同,例如每日或每周。

这是否可能,在第一个 Firebase 项目中使用单个云函数将数据写入另一个 Firebase 项目?如果没有,也许将数据写在别处(不是在另一个 Firebase 项目中)?这种方法是否有意义,或者您有更好的建议?

如果您只想导出更新的文档,那么您可以存储一个字段 updatedAt 并查询文档 where("updatedAt", ">", "lastExportTime")。然后你可以定期运行一个云函数来导出这些文件。每次函数 运行s.

时,这应该只花费 N 次读取(N = 更新文档的数量)

Furthermore, backed up data would never become stale (as it's backed up in real-time)

这也有效,但如果文档更新过于频繁,也会变得昂贵。