我得到我的應用程序與讀取和寫入與廣泛開放的權限,現在我鎖定它。我的應用程序不會讀取或寫入。儘管Firebase規則模擬器說我的規則對於已通過成功的Firebase signInWithProvider
的UID獲得的Facebook身份驗證用戶可以正常使用,但我仍然獲得了權限被拒絕的錯誤。我錯過了什麼?獲取權限被拒絕讀取和寫入
{
"rules": {
"items": {
"$uid": {
// user must match the authenticated user
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
這是我的數據結構:
my-firebase-app
-items: {
-<uid123> : [
{label:'apple'},
{label:'banana'}
]
-<uid456> : [
{label:'pear'},
{label:'cherry'}
]
}
- 我做登錄火力Facebook的身份驗證後,
firestack.auth.signInWithProvider(provider, facebookAccessToken, '')
,這給了我,包括UID - 我推到
/items/uid123
和我的用戶對象獲取物品ID,333
- 我在處爲新ID(333)設置了
/items/uid123/333
- 我訂閱項目的集合在
/items/uid123
通過網絡SDK這樣做:itemsRef.child(uid).on('value', (snapshot) => .....
我的組呼的樣子,
const newPostRef = itemsRef.child(uid).push(); newPostRef.set(itemWithID)
set
承諾得到許可否認拒絕錯誤。
上述所有做工精細的東西,如果我的.read
和.write
被簡單地設置true
這使我想起我的語法或結構是DEF規則毗鄰。會喜歡一些輸入。
請分享觸發問題的最小代碼。 –
謝謝@FrankvanPuffelen,我已更新我的問題,更詳細 –
我仍然不明白哪個代碼觸發了問題。它是''on()'觸發'permission denied'嗎?另請注意,我們無法看到身份驗證如何在此流動。您可以分享[單個代碼段(運行時)觸發錯誤](http://stackoverflow.com/help/mcve),而不是您想如何執行的項目符號列表。如果您嘗試在jsbin中重現問題可能會有所幫助(但這意味着必須在沒有堆疊的情況下進行重現)。 –