0
我想將一些數據保存在firebase中的Items
節點上。我能救我的時候規則是Firebase DatabaseError:權限被拒絕
"Items":{
".write": "auth != null",
".read": "auth != null"
}
,但我想用戶編寫/更新他們自己項目和我不想使用$
變量,因爲它會增加我的道路上的一些數據。這是
下面的方法將增加我的路徑代替/Items
上的某些數據將是/key/Items
{
"rules": {
"Items": {
"$user_id": {
".read": "auth != null",
".write": "$user_id === auth.uid"
}
}
}
}
因此,我看到的最好的方法就是寫我的規則是這樣
"Items":{
".read": "auth != null",
".write": "(data.exists() && data.child('userId').val() === auth.uid) || (!data.exists() && newData.child('userId').val() === auth.uid)"
}
}
當我在模擬器上運行以下代碼時,一切正常
{
"userId":"xxxxxxxxxxxxxxxxx"
}
但 wnen我試圖從我的手機上傳數據,我得到一個錯誤
setValue at /Items/-KWH6tgdLPGTdascf-w3 failed: DatabaseError: Permission denied
我要去哪裏錯了?
,但將讓大家編輯數據。我只想要數據所有者這樣做 –
在這種情況下,您只需使用'$',檢查[this](http://stackoverflow.com/questions/31736252/firebase-user-read-all-write-new - 但只修改他自己的數據)和[這](https://stackoverflow.com/questions/38600989/keeping-firebase-data-secure) –
添加「$」將迫使我包括一些額外的數據在我的道路上。那就是我的數據庫引用應該指向'/ items/key /'。我不想包含任何密鑰 –