【问题标题】:Firestore Batch delete while reading documentFirestore 在阅读文档时批量删除
【发布时间】:2020-08-23 12:05:41
【问题描述】:

我想知道在 firestore 中删除我的收藏(包含子收藏)的最佳方法是什么。我需要每天 20:00 UTC 删除整个集合(使用 https://firebase.google.com/docs/firestore/solutions/delete-collections 之类的代码)。

我担心用户将能够查询/写入文档到正在删除的集合/子集合中。如果他们在批量删除运行时尝试读取/更新/删除集合中的文档,这会导致任何问题吗?

我曾想过以某种方式编写一些 Firestore 规则,如果查询时间是 20:00 - 20:05 UTC,则阻止读取,但这似乎有点 hacky,我不确定它是否可能。

任何人都可以就如何在批量删除的同时处理潜在读取提供一些帮助。

非常感谢

旁注:在删除集合代码中,它提到了functions.config().fb.token 所需的令牌。如果代码在云函数上运行,这是否总是一样的?

【问题讨论】:

  • 嘿 ebg11。你看到我的回答了吗?成功了吗?
  • 嗨弗兰克 :) 我需要多考虑一下,因为我将在本周末实施更改。感谢您的回答和跟进,非常感谢。如果我仍然有问题,我会添加另一条评论。
  • 嗨弗兰克,我最终使用子集合来帮助控制读取......它简化了我的删除操作。但是,它导致了 Firestore 规则的一些问题。我在这里写了另一个问题stackoverflow.com/questions/63648467/…。如果您能抽出时间阅读它,我将不胜感激。

标签: node.js firebase google-cloud-firestore


【解决方案1】:

我可以在这里想到两个主要场景:

  1. 在第一次通过后重试删除集合,以获取在删除代码时创建的所有文档。
  2. 通过全局锁定安全规则阻止用户写入。

即使你做第二个,我还是会做第一个 - 因为当有足够的用户时很容易错过写入。

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2019-02-03
    相关资源
    最近更新 更多