我需要這個火力地堡規則的幫助,我有這樣的孩子,我存儲時間戳如何驗證servertimestamp是否低於Firebase本身的某個值?
我需要在服務器時間戳小於存儲,只允許在火力寫入到另一個位置在日期 - >日期的孩子。 我不確定如何在寫入或驗證過程中執行此操作,或者如何讓規則在Firebase本身中讀取特定值。
UPDATE
我能夠從現在的位置讀取,但問題是鑄造爲comarison值。 我試過(整數)(整數)parseInt()數字(),他們都失敗
我在正確的軌道或應該做不同?
更新2 我設法寫的 - 即不產生了人爲錯誤的一個可接受的規則,但它不工作,這是
{
"rules": {
"test":{
".write": "now < root.child('date/Date').val()",
".read" : false
}
}
}
有什麼建議?
更新3
其實它並不能很好的工作,我認爲這是一個比較數量從「現在」功能來串來形式root.child.val,所以規則總是假。
我設法解決它,把這裏的解決方案,以防萬一有人需要它
"rules": {
"test":{
".write": "now + ' ' < root.child('date/Date').val() + ' '",
".read" : read
}
}
所以基本上我加入了(+'「)現在將其轉換爲字符串,並添加與val相同只是爲了使兩個字符串相比相同的長度。
再次感謝,你是非常有幫助的,真的很感激它。使用控制檯時是否應用規則?即使將其設置爲寫入:false,我仍然可以在使用Chrome控制檯時寫入位置。 –
嗯,您正在通過Firebase App Dashboard打開控制檯進行編寫。是的,規則不適用於那裏,因爲你是管理員。 Firebase應用信息中心是一個具有Firebase數據庫管理權限的網絡應用。當您使用控制檯並創建參考時,您將獲得管理員的Web應用程序的本地權限。嘗試以隱身模式訪問數據或使用模擬器。 –
非常感謝:) –