如何为 Firestore 文档设置到期日期 [重复]

Posted

技术标签:

【中文标题】如何为 Firestore 文档设置到期日期 [重复]【英文标题】:How to set an expiration date for Firestore documents [duplicate] 【发布时间】:2018-12-08 03:22:20 【问题描述】:

如何将未来的日期和时间添加到 Firestore 文档并在该时间到期时添加功能?例如,今天我创建了一个文档并记录了那个时间,然后我想在十五天后注册publicado 字段将是false。有可能吗?

我正在通过以下方式在 Firestore 中创建文档:

component.ts

import  Component, OnInit  from '@angular/core';
import  FirebaseService  from '../../../services/firebase.service';
import  FormGroup, FormBuilder, Validators  from '@angular/forms';

forma: FormGroup;

constructor( fb: FormBuilder, private fs: FirebaseService ) 
  this.forma = fb.group (
    fechaCreacion: [ firebase.firestore.FieldValue.serverTimestamp() ],
    publicado: [ true ],
  )


agregarAviso() 
  this.fs.addAviso(this.forma.value);

firebase.service.ts

constructor( private afs: AngularFirestore ) 

addAviso(aviso)
  this.afs.collection('avisos').add(aviso);

因此,我得到以下信息:

【问题讨论】:

【参考方案1】:

Firestore 没有文档的 TTL(生存时间)概念。文档永远存在,直到某些代码直接删除它们。

您可以编写一些代码来定期查询应该过期的文档,并且您必须接受它们最终可能会在时间戳之后被删除,直到您的处理过程的时间量定期运行。您可能希望使用 Firebase Admin SDK 在您控制的后端运行此程序,并使用您控制的调度程序。

【讨论】:

好的。我认为我没有很好地提出我的方法。我尝试的不是删除文档,而是更新它。例如,是否可以在一段时间后将published 字段更新为`false`?这就是我现在要做的更新它: html (ngModelChange) =" updatePublicated (warning.id, warning, $ event)" ts: updatePublicated (key, obj, e)      this.fs.updatePosted (key, e);    服务:`updatePublicated (key, published) this.afs.doc ('warnings /' + key) .update (published); Firestore 中根本没有预定的工作。您仍然必须按照我在回答中的建议进行操作。

以上是关于如何为 Firestore 文档设置到期日期 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何为使用 Firestore 文档快照的模型编写测试

如何为 Firestore 创建大量示例数据?

如何为 Google 课堂课程设置正确的时区

如何为使用 Cloud Firestore 的 Flutter 应用设置安全规则?

如何在 WindowsStoreProxy.xml 中动态设置日期

如何为一对一聊天应用编写 Firestore 规则?