【问题标题】:How to update a field in a firestore document after an x amount of time?如何在 x 时间后更新 Firestore 文档中的字段?
【发布时间】:2020-06-10 09:24:20
【问题描述】:

我们有一个带有时间字段参数的文档,我们需要 firebase 来检查自文档创建以来是否经过了一定的时间。如果这段时间已经过去,我们需要更新同一个文档中的一个字段。有没有办法做到这一点?

【问题讨论】:

  • 尝试在 Flutter 中搜索计时器和未来延迟。它真的很简单。
  • 未来的延迟会有什么帮助,我需要 Firebase 来按时自动更新。
  • 您可以在以后的延迟中设置延迟时间。你也可以使用计时器来做同样的事情。成功创建文档后运行计时器或延迟。

标签: firebase flutter google-cloud-firestore


【解决方案1】:

您可以创建一个在创建文档时触发的云函数。 在此函数中,您可以使用诸如 setTimeout() 之类的计时器来执行更改文档的函数

const functions = require('firebase-functions');

exports.myFunction = functions.firestore
  .document('my-collection/{doc-id}')
  .onCreate((snapshot, context) => { setTimeout(updateDocFunction,time) });

【讨论】:

  • 谢谢,这应该可以,如果你能给我一个例子,updateDocFunction 是什么?
  • 它应该是您创建的函数,您可以在其中处理文档中应更新的内容。如果此方法不起作用,请检查日志并评论问题。
  • 我遇到了一些错误,1. const functions = require('firebase-functions');错误:const 变量必须有一个常量值 2. 未定义名称“exports”。 3. 没有为类型“_PollConfirmationPageState”定义方法“setTimeout”。
  • 此代码必须在云函数中创建。这是用节点js编写的。此代码未添加到您的应用代码中,已添加到云端,请查看 Firebase 文档以了解云功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 2019-04-10
  • 2019-09-10
  • 2019-08-14
相关资源
最近更新 更多