【发布时间】:2019-02-02 03:30:00
【问题描述】:
我的应用程序能够从 Firebase 的数据库加载数据,但现在我无法显示它。我假设这与 Firebase 更新有关。我可以通过调用 .child("users").child((currentUser?.uid)!).child("userDetails") 来访问数据,而我的 currentUser 是 Auth.auth().currentUser。方法变了吗? iOS 应用程序如何从 Firebase 读取数据?
override func viewDidLoad() {
super.viewDidLoad()
let currentUser = Auth.auth().currentUser
if currentUser == nil {
self.showMessage(messageToDisplay: "Could not read user details")
return
}
print("User id = \(String(describing: currentUser?.uid))")
print("User email \(String(describing: currentUser?.email))")
print("Is email verified \(String(describing: currentUser?.isEmailVerified))")
var databaseReference:DatabaseReference!
databaseReference = Database.database().reference()
databaseReference.child("users").child((currentUser?.uid)!).child("userDetails").observeSingleEvent(of: DataEventType.value) { (snapshot) in
let userDetailsData = snapshot.value as? NSDictionary
let firstName = userDetailsData?["firstName"] as? String ?? ""
let lastName = userDetailsData?["lastName"] as? String ?? ""
self.fullNameLabel.text = self.fullNameLabel.text! + " " + firstName + " " + lastName
}
}
我收到以下错误:
/users/(省略用户 ID)/userDetails 处的侦听器失败:permission_denied TIC TCP 连接失败 [9:0x604000169e40]: 1:61 Err(61) HTTP 加载失败(错误代码:-1004 [1:61]) 任务完成但出现错误 - 代码:-1004 遇到网络错误。代码,错误:-1004,错误域=NSURLErrorDomain 代码=-1004“无法连接到服务器。”
【问题讨论】:
-
检查您的 Firebase 规则以确保它允许 .read 在“用户”节点
-
"users": { "$uid":{ ".read":"auth != null && auth.uid == $uid", ".write": "auth != null && auth.uid == $uid" }
标签: swift firebase firebase-realtime-database