我有一个问题,我在网上搜索并找到了一个答案,但它对我不起作用。我有一个应用程序,用户可以发布图像和所有发布图像加载的馈送。我一直在输出中得到permission_denied错误的一个问题。我很困惑,当我查找答案时,我得到的只是尝试ref.removeAllObservers,但我的代码已经有了这个。这是我的代码,请查看:
func fetchPosts () {
let ref = FIRDatabase.database().reference()
ref.child("posts").queryOrderedByKey().observeSingleEvent(of: .value, with: { snapshot in
let postSnap = snapshot.value as! [String: AnyObject]
for (_,post) in postSnap {
let posst = Post()
if let author = post["author"] as? String, let pathToImage = post["pathToImage"] as? String, let postID = post["postID"] as? String {
posst.author = author
posst.pathToImage = pathToImage
posst.postID = postID
self.posts.append(posst)
}
self.postTableView.reloadData()
}
})
ref.removeAllObservers()
}
如果您有答案,请告诉我。这里还有输出:
2017-05-03 08:06:31.771 Postflur [21064] [Firebase /数据库] [I-RDB03812]听众/帖子失败:permission_denied
答案 0 :(得分:1)
很高兴听到你已经解决了(我在评论部分看到了它),但我还是想写这个答案,因为我在过去遇到了类似的问题。 因此,默认情况下,firebase数据库只能由经过身份验证的用户读取/写入(如果您查看firebase控制台中的规则,您将找到以下内容):
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
因此,要让未经过身份验证的用户读/写数据,您应该将规则更改为以下
{
"rules": {
".read": true,
".write": true
}
}
这是我的解决方案。