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/) –

回答