gpt4 book ai didi

ios - 如何修复可选值以使我的代码正确运行

转载 作者:行者123 更新时间:2023-11-28 07:22:26 25 4
gpt4 key购买 nike

我需要一个校对程序来检查这段代码,告诉我哪里出错了,如何修复这个错误,我正在尝试验证Firebase数据库中的一个帐户,但我有这个代码错误。

- (void)createUserWithEmail:(nonnull NSString *)email
password:(nonnull NSString *)password
completion:(nullable FIRAuthDataResultCallback)completion;

我的FirAuth是Nil,正在抛出代码,数据库和存储也是空的。
如何解决此问题以使代码正确运行。没有其他问题解决了我的问题。我该怎么解决?
@IBAction func signupBtn_TouchUpInside(_ sender: Any) {
Auth.auth().createUser(withEmail: EmailTextField.text!, password: passwordTextField.text!, completion: { authResult, error in
if (error != nil) {
print(error!.localizedDescription)
}else{
return
}
let uid = Auth.auth().currentUser?.uid
let storageRef = Storage.storage().reference(forURL: "gs://tunnel-vision-d61a4.appspot.com/").child("profile_Image").child(uid!)
let profileImg = self.selectedImage; if let imageData = profileImg.jpegData(compressionQuality: 0.1) {
storageRef.putData(imageData, metadata: nil, completion: { (Metadata, Error) in

最佳答案

我相信createUser是一个异步调用(它在后台发生),当它成功地创建了一个用户时,它将启动FIRAuthDataResultCallback完成处理程序。这意味着依赖于此函数完成的任何代码都必须在完成处理程序内部运行。
您当前是在请求创建新用户后直接调用Auth.auth().currentUser?.uid,但不是在完成用户创建之后。这意味着大部分时间用户仍将nil
试试这个,看看能不能解决这个问题。你例子中的括号排得不太齐,所以我已经尽力假设它们应该在哪里:)

    @IBAction func signupBtn_TouchUpInside(_ sender: Any) {
Auth.auth().createUser(withEmail: EmailTextField.text!, password: passwordTextField.text!, completion: { authResult, error in
if (error != nil) {
print(error!.localizedDescription)
} else {
// The callback has been called and there is no error so we should _now_ have a user
let uid = Auth.auth().currentUser?.uid
...
}
})
}

关于ios - 如何修复可选值以使我的代码正确运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com