如何为 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 文档设置到期日期 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何为使用 Cloud Firestore 的 Flutter 应用设置安全规则?