2017-09-24 42 views
0

在我火力的数据库,我已经设置了以下规则:权限被拒绝值设置为火力地堡数据库

{ 
    "rules": { 
    "Users": { 
     "$uid": { 
     ".write": "$uid === auth.uid", 
     ".read": "$uid === auth.uid" 
     } 
    } 
    } 
} 

我开发iOS应用与火力地堡。我使用Facebook的身份验证登录到我的应用程序,我想用户ID添加到数据库时,登录成功,这是我的代码:

let ref = Database.database().reference() 
... 
// I got uid 
ref.child("Users").setValue(uid) 

但我得到的错误:

setValue: or removeValue: at /users failed: permission_denied 

为什么?

回答

0

您无权将值写入/users,因此操作被拒绝。

有权写入值/users/$uid。你可能试图做这样的事情:

ref.child("Users").child(uid).setValue(true) 
+0

谢谢,但我怎么能添加uid到“用户”只为Facebook认证的用户?正如我在我的问题中提到的,'uid'是成功登录的用户(Facebook登录) –

+0

我共享的代码片段解决了您在问题中出现的错误消息。如果您想额外检测用户是否使用Facebook登录,请参阅https://stackoverflow.com/questions/39056853/how-to-detect-if-a-user-has-signed-in-to-my-应用 - 使用 - 火力 - 与Facebook的-EM –