0

我想僅允許對已經在用戶列表中的電子郵件地址進行身份驗證的用戶寫入權限。Firebase身份驗證規則檢查電子郵件

我的用戶名單如下:

{ 
    "users" : { 
    "-KeZg-MuD-4TEOiW9i0_" : { 
     "email" : "[email protected]" 
    } 
    } 
} 

我使用的規則是這樣的嘗試:

"users": { 
    ".write" : "root.child('users/email').val() === auth.token.email" 
} 
"users": { 
    ".write" : "root.child('users.email').val() === auth.token.email" 
} 
"users": { 
    ".write" : "root.child('users.email').child(auth.token.email).exists()" 
} 
"users": { 
    ".write" : "root.child('users').child(auth.token.email).exists()" 
} 

,但無濟於事。當我嘗試添加這樣一個新的用戶,我仍然得到許可被拒絕的錯誤:

firebase.database().ref('users').push({email: '[email protected]'}) 

我的片段上面使用[email protected]而不是實際的谷歌身份驗證的用戶的電子郵件地址,但實際用戶是目前我用戶數據庫列表。

+0

你能舉一個你嘗試過的東西的代碼示例嗎? –

+0

我正在添加類似於我添加的示例的用戶。之後我獲得了拒絕錯誤的權限。 – okwme

+0

我無法提供您分享的大部分代碼。你能分享你的實際JSON(因爲你的規則是檢查「根」)爲文本?您可以通過點擊[Firebase數據庫控制檯](https://console.firebase.google.com/project/_/database/data/) –

回答