2016-07-24 65 views
0

不幸的是,Firebase沒有開箱即用的老化機制(自動刪除舊條目)。所以,我正在嘗試實施一個。但是,我堅持兩個決定之間:強化Firebase實時數據庫中的老化

  1. 如果客戶端獲取的舊條目時,他會自動刪除:我覺得 這是最簡單的我而言,但它看起來不是很 安全我。
  2. 在服務器上執行一個小腳本/程序,將 檢查完整數據庫並刪除舊條目。

我喜歡第一個解決方案,因爲它不包括部署另一個服務器端應用程序,但我不知道它是否會帶來風險。

您認爲最好的是什麼? 如何保護第一個解決方案以避免任何可能的所有項目刪除? 對於第二種解決方案,我不會從我的計算機運行腳本,並且我不想爲另一個服務器付費來部署腳本,可以將它部署到Firebase上嗎?

+0

這篇文章的答案可能會給你一些想法:http://stackoverflow.com/questions/15990681/firebase-chat-removing-old-messages –

回答

3

從客戶端刪除過時的項目已被覆蓋。請參閱:

要這樣只有過時的,可以刪除保護此操作,您可以使用Firebase Database security rules。喜歡的東西:

{ 
    "rules": { 
    "messages": { 
     "$message": { 
     // only messages older than an hours can be remove 
     ".write": "newData.exists() || data.child('timestamp').val() < (now - 3600000)", 
     } 
    } 
    } 
} 

在火力地堡的服務器上運行自己的代碼,現在可以用Cloud Functions for Firebase完成。還有一個sample that shows how to delete older data with Cloud Functions