我正在構建一個「事件」應用程序,其中一些用戶在應用程序中放置了一些事件,其他用戶可以看到它們。假設每個事件都有一個開始日期時間,結束日期時間和名稱。如何在Firebase數據庫中過期數據
我想讓用戶只看到當前事件,即以<開始<結束的事件。這是某種過濾功能,Firebase不支持這種過濾功能。我可以通過startAt和endAt查詢在我的應用程序中實現此目的。但是,這不會幫助我隱藏用戶的機密數據,因爲雖然我的應用程序不會訪問過去和將來的事件,但任何人都可以從其REST API查詢數據庫以查看這些事件。
因此,我決定用三個事件列表構造數據:past_events
,current_events
和future_events
。
現在,問題是,我需要將事件從future_events
移動到current_events
和從current_events
到past_events
時候是正確的。我相信無法在Firebase中自動觸發這些更改。因此,我正在考慮在某個地方定期進行清理。
這是處理Firebase中數據過期的最佳方式嗎?任何建議/意見?
感謝
如果Firebase結構設置正確,則可能需要考慮更改設計,因爲「移動」數據以「清理」通常不是必需的。例如,在運行查詢時,只返回存儲在該節點中的時間戳大於7天前的那些結果。這樣,您就不必擔心代碼爲您處理「即將到期」的數據。或者返回時間戳爲七天後節點的結果。所有在代碼和Firebase規則中完成的操作都會限制用戶訪問其他任何數據。 – Jay
@Jay,那麼'''代碼處理你的部分與@Pawel Janicki的答案是一樣的,問題是,它隱藏了來自應用程序用戶的數據,但是當你去查詢數據庫時直接(例如通過郵差),你可以看到所有事件。 依賴於應用程序端查詢不提供數據庫安全性。我希望這些數據是保密的,因此沒有人(包括腳本小子)應該看到。這隻能通過安全規則來實現,安全規則不能提供過濾。 –