我有一個火力地堡數據庫以下規則:火力地堡數據庫規則和PERMISSION_DENIED錯誤
{
"rules": {
"messages": {
"$message": {
".read": "true",
".write": "newData.child('uid').val() === auth.uid"
}
}
}
}
的數據結構是這樣的:
我可以寫入沒有問題,但是當我嘗試閱讀時,出現以下錯誤:
Error: permission_denied at /messages: Client doesn't have permission to access the desired data.
我已閱讀firebase文檔,並且我的結構看起來與給出的示例相同。請,有人能告訴我這有什麼問題嗎?
請注意:在「消息」下移動讀取規則確實解決了問題,但不是我想要的解決方案,因爲我想根據消息數據(類似於寫入規則)編寫規則基本規則工作。我想用這樣一個規則來結束:
{
"rules": {
"messages": {
"$message": {
".read": "data.child('uid').val() === auth.uid",
".write": "newData.child('uid').val() === auth.uid"
}
}
}
}
嗯..我從這樣的結構開始,但我的問題是,我有兩個用例;一個用戶只能看到他們自己的消息,另一個用戶在管理員看到所有消息。管理員查詢需要能夠通過諸如消息打開或關閉等屬性進行過濾。當我試圖用更嵌套的結構來做到這一點時,我發現編寫管理查詢是不可能的(太多的嵌套)。聽起來像我回到了繪圖板... :-( –
所以只有管理員可以看到所有的消息,所以用戶只能看到他們的消息? – Callam
是的,這是正確的。我有一個令牌,我可以識別這個問題正在構造數據,所以我可以查詢它並且用戶可以閱讀他們自己的消息。 –