我是使用Firebase的新手,在我为新用户实施凭据时,我注意到在调试器中Firebase没有接收实施的信息。当我运行我的应用程序时,它会崩溃并有一个:
主题1:EXC_BREAKPOINT错误
而且我不确定发生了什么。我导入了所有必要的模块。我还试图制作uid
和ref
选项,但更多的错误来自于此。快照初始化中出现错误self.ref
和self.uid
。以下是代码段:
struct User {
var email: String!
var firstname: String
var lastname: String
var uid: String!
var ref: DatabaseReference!
var key: String = ""
var username: String!
init(snapshot: DataSnapshot){
self.email = (snapshot.value as! NSDictionary)["email"] as? String
self.firstname = (snapshot.value as! NSDictionary)["firstname"] as! String
self.lastname = (snapshot.value as! NSDictionary)["lastname"] as! String
self.uid = (snapshot.value as! NSDictionary)["uid"] as! String
self.ref = snapshot.ref
self.key = snapshot.key
}
init(email: String, firstname: String, lastname: String, uid: String){
self.email = email
self.firstname = firstname
self.lastname = lastname
self.uid = uid
self.ref = Database.database().reference()
}
func getFullname() -> String{
return "\(firstname) \(lastname)"
}
func toAnyObject() -> [String: Any]{
return ["email":self.email,"firstname":self.firstname,"lastname":self.lastname,"uid":self.uid]
}
}
除了uid和ref之外,Firebase会传递所有内容。这是我的调试器中的样子:
我想知道为什么信息基本没有传递到数据库。
以下是我放置用户初始值设定项的位置:
func fetchAllUsers(完成:@escaping([User]) - > Void){
let usersRef = databaseRef.child("users")
usersRef.observe(.value, with: { (users) in
var resultArray = [User]()
for user in users.children {
let user = User(snapshot: user as! DataSnapshot)
let currentUser = Auth.auth().currentUser!
if user.uid != currentUser.uid {
resultArray.append(user)
}
completion(resultArray)
}
}) { (error) in
print(error.localizedDescription)
}
}
以下是用户帐户的结构。问题是,我创建的新帐户不会出现这种情况。