为什么 .verifyPhoneNumber 函数没有在 Swift 中被调用?

问题描述 投票:0回答:1

因此,我尝试使用 swift/swfitUI 和 Firebase 为我们的 iOS 应用程序创建电话身份验证。我遵循了 Firebase 提供的所有步骤:

  1. 为我们的 Firebase 项目启用了电话号码登录
  2. 在 XCode 中的应用程序内启用推送通知
  3. 为我们的应用程序创建了 APN 密钥,并使用团队 ID 和密钥 ID 将其上传到 Firebase
  4. 在 XCode 中设置 reCAPTCHA
  5. 安装了 firebase-ios-sdk

并添加了此代码(保存phoneAuth.verifyPhoneNumber函数的函数):

import Firebase
import FirebaseAuth
import FirebaseCore


func checkPhoneNumber(phoneNumber: String, completion: @escaping VerificationCompletion) {
    let phoneAuth = PhoneAuthProvider.provider()
    print(phoneAuth)
    print(phoneNumber)
    
    FirebaseConfiguration.shared.setLoggerLevel(.debug)
    
    phoneAuth.verifyPhoneNumber("+1"+phoneNumber, uiDelegate: nil) { verificationID, error in
        if let verificationID = verificationID {
            print(verificationID)
        }
        if let error = error {
            print(error.localizedDescription)
            completion(false, .failure(error))
            return
        }
        
        // Store the verification ID for later use
        UserDefaults.standard.set(verificationID, forKey: "verificationID")
        
        completion(true,.success(verificationID ?? ""))
    }
    print("Function checkPhoneNumber run.")
}

我就是这样称呼它的:

Button(action: {
    let impactLight = UIImpactFeedbackGenerator(style: .light)
    impactLight.impactOccurred()

    checkPhoneNumber(phoneNumber: user.phoneNumber) { success, error in
        print(success, error)
        if success {
             DispatchQueue.main.async {
                router.push(.page3)
             }
        } else {
           print("error!")
        }
     }
}, label: {
    continueButton()
       .padding()
})

每次按下按钮时,我只会得到这个(函数 .verifyPhoneNumber 没有被调用): (453) 454-33 函数 checkPhoneNumber 运行。

尝试更改数字格式。尝试将 .verifyPhoneNumber 从 checkPhoneNumber 函数中取出,因此通过单击按钮直接调用它。我更新了 firebase-ios-sdk。我删除了之前的 APN 密钥并创建了一个新的。我尝试在 iPhone 上运行该应用程序,希望能得到不同的结果。尝试删除 google-info.plst,再次下载并放入 XCode 中。尝试在模拟器上启用后台模式。一切都没有成功。问题是我无法得到任何错误,因为该功能根本不起作用。

也尝试过启用此功能:

Auth.auth().settings.isAppVerificationDisabledForTesting = TRUE

swift swiftui firebase-authentication
1个回答
0
投票

该问题可能与您配置 FirebaseApp 的位置有关。请参阅this了解更多详情。

© www.soinside.com 2019 - 2024. All rights reserved.