我正在構建一個應用程式,當某個 Firestore 檔案的時間戳變得比當前時間更舊時,該應用程式必須做出反應。有沒有辦法將這種型別的查詢偵聽器設定為云函式,或者以其他方式實作在其時間戳跨越當前時間時對檔案做出反應的預期目標?
據我所知,閱讀 Firestore 和 Cloud Function 檔案,查詢偵聽器可能無法設定為 Cloud Functions。此外,這不僅僅是一個常規的查詢偵聽器 - 查詢條件(時間)是動態的,因此它不是典型的查詢結構(“是 A < 5”)而是動態結構(“是 T < 現在”,其中“現在”每時每刻都在變化)。
如果這是真的,作為查詢偵聽器是不可能的,我當然會感謝有關如何通過另一種方式實作此目標的任何建議。我的一個想法是創建一個每 60 秒觸發一次并根據當時的時間運行查詢的云函式,但這不允許持續監聽(不幸的是,60 秒對于我們的使用來說太長了)。非常感謝你提前
uj5u.com熱心網友回復:
Firestore 查詢只能過濾顯式存盤在它們回傳的檔案中的文字值。無法在查詢中執行計算,因此任何時候您需要在查詢中使用now - 將在創建查詢時計算時間戳。
有兩種常見方法可以實作您描述的生存時間型別功能:
設定一個定期運行的流程(例如基于時間的 Cloud Function),并且每次流程運行時執行查詢以確定哪些檔案已過期。
作為這種變體,您可以在每次云函式觸發時啟動一個永久的更新偵聽器,并保持活躍的時間略短于下一次觸發之前的時間間隔。
為需要處理檔案時到期/觸發的每個檔案創建一個 Cloud Task。雖然這看起來更復雜,但實際上最終會更簡單,因為您的回呼現在在單個檔案上觸發。
另請參閱:Firebase Firestore 中的檔案是否有任何 TTL(生存時間),其中包含指向 Doug 出色文章的鏈接,該文章關于如何使用 Cloud Tasks 安排 Cloud Functions 將來運行(構建 Firestore 檔案 TTL)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322646.html
