Firebase Firestore中是否有文档的TTL(生存时间)

Mah*_*Gvp 6 firebase google-cloud-firestore

Firebase Firestore的文档上是否有任何TTL选项。在该时间段后自动删除文档的位置

Fra*_*len 5

没有这样的内置功能。

自己构建它的最简单方法是:

  1. expirationTimestamp文档中添加属性。
  2. 拒绝阅读其安全性规则中已过期的文档。

    match /collection/{document} {
      allow read: if resource.data.expirationTimestamp > request.time.date();
    }
    
    Run Code Online (Sandbox Code Playgroud)

    不幸的是,这意味着您将无法再查询集合。您需要访问各个文档。

  3. 定期运行Cloud Functions代码以删除过期的文档。

  • 另外,您现在可以使用“云任务”来计划执行将来删除文档的功能。 (2认同)

小智 5

Firestore TTL 策略现已提供预览版

https://cloud.google.com/firestore/docs/ttl


Ros*_*des 3

截至 2022 年 7 月 26 日,Firestore 的 TTL 策略作为预览功能发布(这意味着它尚未准备好投入生产)2022 年 10 月更新: TTL 策略功能已从预览版升级为正式版,这意味着它现在应该可以投入生产了!

为了在 Firestore 中使用 TTL 策略,请确保您的文档有一个字段(类型为Date & Time)来定义该文档的到期日期(expireAt例如,让我们为该字段命名)。

然后按照文档中概述的步骤操作:

  1. 转到Google Cloud Platform Console 中的Cloud Firestore 生存时间页面。
  2. 转至生存时间页面。
  3. 单击创建策略。
  4. 输入集合组名称和时间戳字段名称(expireAt在我们的示例中)。
  5. 单击“创建”。

  • 这是否意味着用于生产不安全? (2认同)