2017-08-06 72 views
0

我允許用戶將複雜的對象存儲到實時數據庫,但我擔心我的存儲配額給定了可能的惡作劇。在以前的項目中,我已經能夠通過長限制值通過顯式定義一個字符串長度每個鍵:Firebase對象大小驗證

".validate": "newData.isString() && newData.val().length < 512" 

但是,我現在的目標有大量嵌套鍵和字符串我寧願只限制1MiB存儲的每個對象都稱它爲好。 Firebase能夠統計數據庫的大小並據此收費,如果可能的話,我想在我的計算中訪問該數據庫。喜歡的東西:

".validate": "newData.isObject() && newData.usage().storage < 1048576" 

我試圖避免創建一個雲功能檢查每一個寫那麼JSON.stringify(obj).length過程中的每個對象的長度並鎖定賬戶或類似的東西。有沒有一種安全規則可能會導致限制對象大小?

回答

1

安全規則中沒有內置對象大小。通過調用JSON.stringify()來實現雲功能,這似乎是最合乎邏輯的方法。

+0

我很害怕這可能。使用雲功能來解決數據庫存儲問題可能會允許用戶改用我的功能分配級聯問題。你將如何防止數據被寫入數據庫的功能,如驗證聲明將提供? – SmujMaiku