我无法理解为什么在运行以下代码时没有执行任何打印行:
ref.child("schools/\(schoolTextField.text!)/settings/pin").observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot.value)
}, withCancel: { (error) in
print(error.localizedDescription)
})
它曾经工作,直到我对firebase身份验证做了一些更改,但我不明白为什么withCancel
块没有被执行!
如何识别此处发生的错误?日志中不会打印错误消息。
修改
我发现了类似的问题here,这表明问题可能与身份验证有关。在appDelegate
的{{1}}中,我检查Firebase身份验证中是否存在用户身份验证令牌:
didFinishLaunchingWithOptions
在目前的情况下,有一个错误,打印出来:
Auth.auth().currentUser?.getIDTokenForcingRefresh(true, completion: { (response, error) in
guard error == nil, let uid = response else {
print(error)
return
}
...
})
我现在也在日志中打印出这些错误:
Error Domain=FIRAuthErrorDomain Code=17011 "There is no user record corresponding to this identifier. The user may have been deleted."
答案 0 :(得分:0)
尝试这种方式:
if let snapshot = snapshot.children.allObjects as? [DataSnapshot] {
for snap in snapshots {
print("SNAP: \(snap)")
}
此外,错误代码 17011 是用户未找到错误,请参阅FIRAuthErrorCode了解更多信息,您还可以创建一个Dataservice类来处理与firebase的交互。 {3}}了解更多信息。