我怀疑我的代码有问题,我无法确定我在这里做错了什么。错误在这一行:Python 2.6
在我的signUp函数中。
self.setUserInfo(firstLastName: firstLastName, user: user, username: username, location: location, biography: biography, password: password, pictureData: pictureData)
答案 0 :(得分:-1)
在方法setUserInfo中,您使用"!"设置了用户参数的解包值,但在您的身份验证中。完成块似乎该值是可选的。
以下是解决问题的方法:
Auth.auth().createUser(withEmail: email, password: password) { [weak self] (user, error) in
guard let unwrappedError = error,
let unwrappedUser = user,
let strongSelf = self
else {
print(error?.localizedDescription)
return
}
strongSelf.setUserInfo(firstLastName: firstLastName, user: unwrappedUser, username: username, location: location, biography: biography, password: password, pictureData: pictureData)
}
编辑:我添加了一个strongSelf模式并使用了一个guard语句,因为你明确地保留了self(在网络回调闭包中没有!),并且guard语句是在这种情况下处理有效性检查的首选方法,因为它使你的意图更加清晰。