簡體   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