debugPrint显示UAUTHENTICATED&QOOT;

本教程将介绍debugPrint显示UAUTHENTICATED&QOOT;的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

debugPrint显示UAUTHENTICATED&QOOT; 教程 第1张

问题描述

我正在尝试将带条纹的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;的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。