【问题标题】:FIrebase firestore - How should I replace a whole collection daily?FIrebase firestore - 我应该如何每天更换整个收藏?
【发布时间】:2020-08-24 22:53:44
【问题描述】:
我正在创建网站,用于收集数据并将其存储在 Firestore 中。
但是,数据需要每天更新,所以我需要每天删除旧数据。
所以目前,我获取了所有新数据并将它们存储在 Firestore 中。然后查询集合中今天之前创建的所有数据,并一一删除。
不好的是,如果我在删除过程中访问该站点,理论上我可以得到一些正在删除的旧数据。
有没有更好的方法来做到这一点?
【问题讨论】:
标签:
firebase
google-cloud-firestore
【解决方案1】:
您可以使用transaction or batch write 以原子方式进行所有更改,这样查询之间就不会出现不一致。
您也可以将所有新数据写入不同的集合,然后只有在成功后,才能删除原始集合中的文档。您将需要另一个文档,客户端首先查询的某个地方告诉它哪个集合是最新的,竞争集合要使用。
可以肯定的是,您选择的任何解决方案都会存在导致问题的边缘情况。您能做的最好的事情就是为您的特定情况选择“最不坏”的解决方案。