Firebase权限被拒绝Swift 3
Posted
技术标签:
【中文标题】Firebase权限被拒绝Swift 3【英文标题】:Firebase Permission Denied Swift 3 【发布时间】:2016-12-17 22:01:12 【问题描述】:我正在尝试读取通过其 uid 值分配给特定用户的数据,但我的权限被拒绝。
有人知道我收到此错误的原因吗?
import UIKit
import Firebase
class ViewController: UIViewController
// dataChild value == User UID as in console.firebase.google.com
var dataChild = "xd5rwZzUqoRbfMp2rq5pTRB3s1"
var dbRef:FIRDatabaseReference! // reference to Firebase
override func viewDidLoad()
super.viewDidLoad()
dbRef = FIRDatabase.database().reference().child("Users")
startObservingDB()
func startObservingDB()
dbRef.child(dataChild).observe(.value, with: (snapshot: FIRDataSnapshot) in
print("The snapshot is \(snapshot.value)") //no longer prints
, withCancel: (Error:Any) in
print("Error is \(Error)") //prints Error is Error Domain=com.firebase Code=1 "Permission Denied"
)
// end of startObservingDB()
Firebase Json 树
"Users" :
"xd5rwZzUqoRbfMp2rq5pTRB3s1" :
"718565122" :
"BookingAmount" : "12",
"BookingNumber" : "718565122",
"DateAndTime" : "Mon, 26 Sep 2016 18:30",
"EmailAddress" : "1@gmail.com",
"FlatNumber" : "10",
"FrequecyAmount" : 48,
Firebase 规则
"rules":
".read": "auth != null",
".write": "auth != null"
【问题讨论】:
这意味着您没有读取数据的权限。阅读有关为您的应用设置安全规则的 Firebase 文档以了解所有相关信息:firebase.google.com/docs/database/security。 @FrankvanPuffelen 每次我在数据库中保存数据时,它的格式都是用户/Uid /数据的第一个节点,例如 718565122。Uid 是通过 Firebase 身份验证获得的用户 ID。鉴于我在路径中使用了有效的 uid,firebase 应考虑用户已通过身份验证并允许我读取其数据。我也用安全规则更新了我的问题。 【参考方案1】:我忘记在我的 swift 文件中添加 pod 'Firebase/Auth'
和 import FirebaseAuth
的 pod。这就是我无法使用有效 uid 读取 firebase 数据库的原因。
【讨论】:
以上是关于Firebase权限被拒绝Swift 3的主要内容,如果未能解决你的问题,请参考以下文章