繁体   English   中英

根据同一文档中的时间戳属性更新 Firestore 文档上的属性

[英]Update Property on Firestore Document Based on a timestamp property in same document

我有一个具有以下两个属性的 Firestore 文档:

isActive: true lastDateForSubmission: 时间戳。

我正在使用 isActive 属性在我的 React 应用程序中启用或禁用上传。 目前 lastDateForSubmission 仅用于显示。

我没有任何后端服务器。 我正在使用普通的 React 和 Firebase。

我需要在 LastDateForSubmission 属性中的时间之后自动将 isActive 属性设置为 False。

我一直在寻找不涉及后端服务器的解决方案,但我一直无法找到。

任何帮助表示赞赏。 谢谢。

如果没有服务器,您将无法执行此类操作。 但幸运的是,您不需要维护服务器Firebase具有 firebase 云功能。

您可以安排任务并更新数据库。 看看https://firebase.google.com/docs/functions/schedule-functions

Firestore 是一个数据库,因此它不能自行执行代码。 但是,您可以使用 firestore 规则来确定是否允许写入,因此虽然这不会更改数据库的isActive值,但它仍可用于防止在lastDateForSubmission变量中指定的截止日期之后进行写入。

https://firebase.google.com/docs/firestore/security/rules-conditions

您可以在此处查看使用 firebase 规则访问请求时间并与目标文档进行比较的示例: https://fireship.io/snippets/firestore-rules-recipes/#time-based-rules-examples ,具体可以比较request.timeresource.data.lastDateForSubmission字段。

如果您确实需要更改变量,那么您将必须创建一个服务器端 function 来执行此操作(例如 firebase 函数),您可以按 cron 计划(例如每小时或取决于您的时间间隔类型)触发它将指定)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM