【问题标题】:How to set an expiration date for Firestore documents [duplicate]如何为 Firestore 文档设置到期日期 [重复]
【发布时间】: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);
}

因此,我得到以下信息:

【问题讨论】:

    标签: angular typescript firebase timestamp google-cloud-firestore


    【解决方案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 中根本没有预定的工作。您仍然必须按照我在回答中的建议进行操作。
    猜你喜欢
    • 2016-02-24
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2021-11-29
    • 2021-09-04
    • 2014-01-13
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多