我正在关注Firebase文档: https://firebase.google.com/docs/auth/ios/phone-auth
试图使用电话号码在iOS上使用Firebase进行身份验证,当我的代码到达此处时,我遇到了致命的崩溃:
PhoneAuthProvider.provider().verifyPhoneNumber(self.phoneNumberTextField.text!, uiDelegate: nil) { (verificationID, error) in
if let error = error {
print("error: \(error.localizedDescription)")
return
}
// Perform Seque to VerifictionCodeViewController
self.performSegue(withIdentifier: "enterVerificationCode", sender: self)
}
我的appDelegate.swift文件中的错误是:libc++abi.dylib: terminating with uncaught exception of type NSException
。
如果我使用较旧且已被弃用的'功能的版本
PhoneAuthProvider.provider().verifyPhoneNumber(self.phoneNumberTextField.text!) { (verificationID, error) in
if let error = error {
print("error: \(error.localizedDescription)")
return
}
// Perform Seque to VerifictionCodeViewController
self.performSegue(withIdentifier: "enterVerificationCode", sender: self)
}
在uiDelegate: nil
函数中没有新添加的verifyPhoneNumber
部分,一切正常!?
有没有人能够解决这个问题?
答案 0 :(得分:3)
您需要完成其余设置。
reCAPTCHA验证:如果无法发送或接收静音推送通知,例如当用户禁用了应用的后台刷新,或者在iOS模拟器上测试应用时,Firebase身份验证会使用reCAPTCHA验证完成电话登录流程。 reCAPTCHA挑战通常可以在用户不必解决任何问题的情况下完成。
o使Firebase SDK能够使用reCAPTCHA验证:
为Xcode项目添加自定义URL方案: 打开项目配置:双击左侧树视图中的项目名称。从TARGETS部分选择您的应用,然后选择Info选项卡,并展开URL Types部分。 单击+按钮,然后为反向客户端ID添加URL方案。要查找此值,请打开GoogleService-Info.plist配置文件,然后查找REVERSED_CLIENT_ID项。复制该键的值,并将其粘贴到配置页面上的URL Schemes框中。将其他字段留空。 完成后,您的配置应该类似于以下内容(但使用特定于应用程序的值):
答案 1 :(得分:1)
您需要执行@mKane所说的操作并使用reCaptcha验证 !并且您还需要从info.plist中删除此键FirebaseAppDelegateProxyEnabled!这帮了我大忙!