Firebase UI Phone 身份验证在模拟器上不起作用
Firebase UI Phone Authentication not working on simulator
工作一年多后,Firebase UI Phone 身份验证停止工作,但似乎仍在设备上工作。输入用户 phone 号码的屏幕出现,但随后崩溃,因为屏幕和应用程序变得完全没有响应。但是,控制台中没有检测到崩溃。控制台以看似随机的顺序重复这三个类似的消息:
更新选择器失败:错误域=NSCocoaErrorDomain 代码=4099“与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。” UserInfo={NSDebugDescription=与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。}
同步远程对象代理返回错误:错误域=NSCocoaErrorDomain 代码=4099“与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。” UserInfo={NSDebugDescription=与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。}
删除委托后更新选择器失败,错误域=NSCocoaErrorDomain 代码=4099“与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接已从此进程失效。” UserInfo={NSDebugDescription=与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接已从此进程失效。}
最后我在控制台中收到这条消息:
找不到支持键盘类型 4 的键盘 iPhone-Portrait-NumberPad;使用 25873_Portrait_iPhone-Simple-Pad_Default
这是调用 Firebase 的代码 UI:
@objc func presentRegistration() {
guard let authUI = FUIAuth.defaultAuthUI() else { handleSignInError(); return }
let providers: [FUIAuthProvider] = [FUIPhoneAuth(authUI: authUI)]
authUI.delegate = self
authUI.providers = providers
guard let phoneProvider = authUI.providers.first as? FUIPhoneAuth else { handleSignInError(); return }
phoneProvider.signIn(withPresenting: self, phoneNumber: "")
}
使用此委托函数:
func authUI(_ authUI: FUIAuth, didSignInWith authDataResult: AuthDataResult?, error: Error?) {
if let _ = error {
present(message: "There was an error signing in. Please check that there is an active internet connection and that the number entered is correct. Then try again.")
} else {
self.loginUser()
}
}
我尝试更新我的 Firebase podfile,但这并没有解决问题。谷歌搜索控制台消息没有帮助。我尝试从模拟器中删除该应用程序,但这没有任何区别。有什么建议吗?
***我实际上发现它适用于某些模拟器而不是其他模拟器。似乎它应该适用于所有或 none。例如,它适用于 11 但不适用于 11 pro。不适用于 SE。
看来转到模拟器的设备部分并单击“清除所有内容和设置”可以解决此问题。不确定是什么问题导致了它,但这解决了它。
工作一年多后,Firebase UI Phone 身份验证停止工作,但似乎仍在设备上工作。输入用户 phone 号码的屏幕出现,但随后崩溃,因为屏幕和应用程序变得完全没有响应。但是,控制台中没有检测到崩溃。控制台以看似随机的顺序重复这三个类似的消息:
更新选择器失败:错误域=NSCocoaErrorDomain 代码=4099“与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。” UserInfo={NSDebugDescription=与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。}
同步远程对象代理返回错误:错误域=NSCocoaErrorDomain 代码=4099“与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。” UserInfo={NSDebugDescription=与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接无效。}
删除委托后更新选择器失败,错误域=NSCocoaErrorDomain 代码=4099“与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接已从此进程失效。” UserInfo={NSDebugDescription=与名为 com.apple.commcenter.coretelephony.xpc 的 pid 0 上的服务的连接已从此进程失效。}
最后我在控制台中收到这条消息:
找不到支持键盘类型 4 的键盘 iPhone-Portrait-NumberPad;使用 25873_Portrait_iPhone-Simple-Pad_Default
这是调用 Firebase 的代码 UI:
@objc func presentRegistration() {
guard let authUI = FUIAuth.defaultAuthUI() else { handleSignInError(); return }
let providers: [FUIAuthProvider] = [FUIPhoneAuth(authUI: authUI)]
authUI.delegate = self
authUI.providers = providers
guard let phoneProvider = authUI.providers.first as? FUIPhoneAuth else { handleSignInError(); return }
phoneProvider.signIn(withPresenting: self, phoneNumber: "")
}
使用此委托函数:
func authUI(_ authUI: FUIAuth, didSignInWith authDataResult: AuthDataResult?, error: Error?) {
if let _ = error {
present(message: "There was an error signing in. Please check that there is an active internet connection and that the number entered is correct. Then try again.")
} else {
self.loginUser()
}
}
我尝试更新我的 Firebase podfile,但这并没有解决问题。谷歌搜索控制台消息没有帮助。我尝试从模拟器中删除该应用程序,但这没有任何区别。有什么建议吗?
***我实际上发现它适用于某些模拟器而不是其他模拟器。似乎它应该适用于所有或 none。例如,它适用于 11 但不适用于 11 pro。不适用于 SE。
看来转到模拟器的设备部分并单击“清除所有内容和设置”可以解决此问题。不确定是什么问题导致了它,但这解决了它。