因此,我尝试使用 swift/swfitUI 和 Firebase 为我们的 iOS 应用程序创建电话身份验证。我遵循了 Firebase 提供的所有步骤:
并添加了此代码(保存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 没有被调用):
尝试更改数字格式。尝试将 .verifyPhoneNumber 从 checkPhoneNumber 函数中取出,因此通过单击按钮直接调用它。我更新了 firebase-ios-sdk。我删除了之前的 APN 密钥并创建了一个新的。我尝试在 iPhone 上运行该应用程序,希望能得到不同的结果。尝试删除 google-info.plst,再次下载并放入 XCode 中。尝试在模拟器上启用后台模式。一切都没有成功。问题是我无法得到任何错误,因为该功能根本不起作用。
也尝试过启用此功能:
Auth.auth().settings.isAppVerificationDisabledForTesting = TRUE
该问题可能与您配置 FirebaseApp 的位置有关。请参阅this了解更多详情。