debugPrint显示UAUTHENTICATED&QOOT; [英] debugPrint says "UAUTHENTICATED"

查看:30
本文介绍了debugPrint显示UAUTHENTICATED&QOOT;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将带条纹的Firebasse链接到我的iOS应用。

我的控制台代码中的debugPrint显示";unAuthenticated

这是我的Viewontroller-

import UIKit
import FirebaseFirestore
import FirebaseAuth
import Stripe
import FirebaseFunctions
class SignUpViewController: UIViewController {
    var paymentContext = STPPaymentContext()
    @IBOutlet weak var email: UITextField!
    @IBOutlet weak var password: UITextField!
    @IBOutlet weak var passwordConfirm: UITextField!
    @IBAction func signUpAction(_ sender: Any) {
        if password.text != passwordConfirm.text {
            let alertController = UIAlertController(title: "Password Incorrect", message: "Please re-type password", preferredStyle: .alert)
            let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
            alertController.addAction(defaultAction)
            self.present(alertController, animated: true, completion: nil)
        }
        else{
            Auth.auth().createUser(withEmail: email.text!, password: password.text!){
                (user, error) in if error == nil {
                }
                else{
                    let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
                    let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
                    alertController.addAction(defaultAction)
                    self.present(alertController, animated: true, completion: nil)
                }
            }
        }
        Functions.functions().httpsCallable("createStripeUser").call(["email": email.text ?? ""]) {
            (result, error) in
            if let error = error {
                debugPrint(error.localizedDescription)
                return
            }
            self.dismiss(animated: true)
        }
    }

}

我的代码中的debugPrint行位于控制台的";unAuthenticated";上方,如下所示:-

如您所见,客户是在FirebaseAuth中创建的,如下所示:-

另外,未创建条带客户

如何整理?

在Frank van Puffelen建议的编辑之后,视图控制器代码-

import UIKit
 import FirebaseFirestore
 import FirebaseAuth
import Stripe
import FirebaseFunctions

class SignUpViewController: UIViewController {
var paymentContext = STPPaymentContext()

@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var passwordConfirm: UITextField!
@IBAction func signUpAction(_ sender: Any) {
    if password.text != passwordConfirm.text {
        let alertController = UIAlertController(title: "Password Incorrect", message: "Please re-type password", preferredStyle: .alert)
        let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
        alertController.addAction(defaultAction)
        self.present(alertController, animated: true, completion: nil)
    }
    else{
        Auth.auth().createUser(withEmail: email.text!, password: password.text!){ [self]
            (user, error) in if error == nil {
                // 👇
                Functions.functions().httpsCallable("createStripeUser").call(["email": self.email.text ?? ""]) {
                    (result, error) in
                    if let error = error {
                        debugPrint(error.localizedDescription)
                        return
                    }
                    self.dismiss(animated: true)
                }
            }
            else{
                let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
                let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
                alertController.addAction(defaultAction)
                self.present(alertController, animated: true, completion: nil)
            }
        }
       }
         }
 }

那没有帮助。

推荐答案

在创建用户后需要运行的代码需要位于createUser(withEmail:, password:)的完成处理程序内。因此,将呼叫httpsCallable("createStripeUser")移到挡路中:

@IBAction func signUpAction(_ sender: Any) {
    if password.text != passwordConfirm.text {
        let alertController = UIAlertController(title: "Password Incorrect", message: "Please re-type password", preferredStyle: .alert)
        let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
        alertController.addAction(defaultAction)
        self.present(alertController, animated: true, completion: nil)
    }
    else{
        Auth.auth().createUser(withEmail: email.text!, password: password.text!){
            (user, error) in if error == nil {
                // 👇
                Functions.functions().httpsCallable("createStripeUser").call(["email": email.text ?? ""]) {
                    (result, error) in
                    if let error = error {
                        debugPrint(error.localizedDescription)
                        return
                    }
                    self.dismiss(animated: true)
                }
            }
            else{
                let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
                let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)
                alertController.addAction(defaultAction)
                self.present(alertController, animated: true, completion: nil)
            }
        }
    }
}

这篇关于debugPrint显示UAUTHENTICATED&QOOT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆