当前位置 : 主页 > 手机开发 > ios >

ios – Firebase – 获取用户时权限被拒绝

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在尝试使用此代码从Firebase数据库中获取用户,但我收到此错误 cancel error Error Domain=com.firebase Code=1 “Permission Denied” UserInfo={NSLocalizedDescription=Permission Denied} 我的规则应该如何建立?
我正在尝试使用此代码从Firebase数据库中获取用户,但我收到此错误

cancel error Error Domain=com.firebase Code=1 “Permission Denied” UserInfo={NSLocalizedDescription=Permission Denied}

我的规则应该如何建立?

这是代码:

FIRDatabase.database().reference().child("users").observe(.childAdded, with: { (snapshot) in

        print("snapshot \(snapshot)")
        //all users right here n shyt
        if let dictionary = snapshot.value as? [String: AnyObject] {
            let user = User()

            //class properties have to match up with firebase dictionary names
            user.setValuesForKeys(dictionary)
            self.users.append(user)


            DispatchQueue.main.async {
                self.messageTable.reloadData()
            }
        }
            print(snapshot)

        }, withCancel: { (error) in
            print("cancel error \(error)")
    })

这是我在Firebase中的规则:

{
"rules": {
"users": {
  "$uid": {
    ".read": "$uid === auth.uid",
    ".write": "$uid === auth.uid"
  }
 }
}
}
根据您当前的安全规则,您只允许当前用户访问其自己的节点.

如果那是您想要的动态,请尝试创建另一个父节点,其中包含您希望与其他用户共享的详细信息.

users:{
 userID1 : {../*PERSONAL DETAILS*/},
 userID2 : {../*PERSONAL DETAILS*/},
 userID3 : {../*PERSONAL DETAILS*/},
 userID4 : {../*PERSONAL DETAILS*/},
 userID5 : {../*PERSONAL DETAILS*/},
 ....
  },
USERS_INFO: {
  userID1 : {../*Details to share*/},
  userID2 : {../*Details to share*/},
  userID3 : {../*Details to share*/},
  userID4 : {../*Details to share*/},
  userID5 : {../*Details to share*/},
  ....
  }

并将您的安全规则更新为: –

{
 "rules": {
 "users": {
   "$uid": {
     ".read": "$uid === auth.uid",
     ".write": "$uid === auth.uid"
   }
  },
  "USERS_INFO":{
     ".read" : "auth != null",
     ".write" : "auth != null"
    }
  }
 }

查询如下: –

FIRDatabase.database().reference().child("USERS_INFO").observe(.childAdded, with: { (snapshot) in
网友评论