3
我試圖阻止將不需要的字段添加到我的用戶對象中。 - >用戶可以有電話和用戶名(但不必 - > newData.hasChildren(['phone','username'])在這裏不起作用)。 我第一次嘗試這樣的:Firebase安全規則:驗證對象中允許使用哪些字段
"users": {
"$uid": {
"$other": {
".validate": "['phone', 'username'].indexOf($other) > -1"
}
}
}
我得到的,因爲數組:(
所以的錯誤,那麼我想過做這樣的事情,但它確實不是很大,如果我有許多潛在的領域
"$other": {
".validate": "$other === 'phone' || $other === 'username'"
}
最後,我創建了我的火力地堡稱爲「規則」的一個節點,這樣做:
"rules": {
"users": {
"fields": {
"phone": true,
"username": true
}
}
}
然後在我的用戶對象我的新的驗證規則是:
"$other": {
".validate": "root.child('rules/users/fields/'+$other).val() === true"
}
我的問題是:這是限制字段名以正確的方式?
非常感謝您的回答:)我對Firebase來說很新,但我有很多樂趣嘗試它!
非常感謝Rob! (對於遲到的答案抱歉,我已經立即閱讀,但忘記迴應:() 這是很好的解決方案是的,但它只是意味着所有的潛在(但不是強制性)領域列出。但它實際上是好的: - 我總是有一些基本的驗證(如newData.isString()) - 我已經列出他們,只是在其他地方:) – adrien