我正在尝试为生产应用程序备份Firestore数据的最佳方法(自动读取、最便宜且易于使用(。
我知道我可以通过预定的云功能自动导出,并将它们发送到gcloud bucket。我对这种方法的问题在于;新的和更新的文档的增量更新";但仅用于备份整个集合。这意味着每次都会备份大部分数据,尽管自上次备份以来,数据甚至没有改变,因此成本会无故飙升。
想到的方法是在";我的应用程序"该项目将监听Firestore中的每一个更改,并在";我的应用程序备份";项目
这样,我只备份更改后的数据。此外,备份的数据永远不会过时(因为它是实时备份的(,这与第一种方法不同,第一种方法是每天或每周进行自动备份。
在第一个Firebase项目中有一个云函数将数据写入另一个Firebase项目,这可能吗?如果没有,也许可以在其他地方写入数据(而不是在另一个Firebase项目中(?这种方法有意义吗?或者你有更好的建议吗?
如果只想导出更新的文档,则可以存储字段updatedAt
并查询文档where("updatedAt", ">", "lastExportTime")
。然后,您可以定期运行Cloud功能来导出这些文档。每次运行函数时,这只需要花费N次读取(N=更新的文档数(。
此外,备份的数据永远不会过时(因为它是实时备份的(
这也有效,但如果文档更新过于频繁,也可能会变得昂贵。