2017-03-05 35 views
0

我的應用程序允許任何人寫一封新消息(消息不能更新或刪除),該消息應該只對經過驗證的用戶可見。經過身份驗證的用戶可以編輯數據(其中包括標記等重要事項等)。將應用視爲私人建議框(任何人都可以提交建議,但只有管理員可以查看提交的建議)。我使用的火力地堡模擬器和下面的失敗,但它不應該:設置規則,允許未經身份驗證的用戶只在Firebase數據庫中寫入新數據

火力地堡模擬器

  • 地點:消息/
  • 驗證:假
  • 數據(JSON)

    「{key:」value「 }

火力地堡的數據庫規則

{ 
    "rules": { 
    "messages": { 
     "$message": { 
     ".read": "auth !== null", 
     ".write": "!data.exists() || auth !== null", 
     }, 
    }, 
    "users": { 
     ".read": "auth !== null", 
     ".write": "auth !== null" 
    } 
    } 
} 

simulator screenshot

+0

您分享的規則乍看起來很正確:對於任何非管理用戶,應該拒絕寫入'/ messages'。你可以發佈模擬器屏幕截圖包含相同的信息? –

+0

@FrankvanPuffelen我添加了一個截圖,所以這個問題可能會有益於未來的人。下面的答案解決了我的問題。謝謝! – blahblahblah

回答

2

我想那是因爲你正在使用的郵件測試/,而只寫消息/ {消息ID}會允許。嘗試寫信給/隨意。

+0

謝謝!我認爲我有正確的規則,但沒有意識到我沒有正確使用模擬器。 – blahblahblah

相關問題