gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 06:24:06 25 4
gpt4 key购买 nike

我正在尝试使用此代码从 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

关于ios - Firebase - 获取用户时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40291114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com