我目前正在实现firebase手机认证,并且可以在不使用swizzling的情况下使用firebase UI成功实现手机认证,但从我的研究来看,在不使用Swizzing的情况下实现firebase电话认证似乎需要用户允许通知。我知道firebase会发送一个无声的通知,不需要通过允许通知来获得批准,但似乎在不发出通知的情况下获得通知的唯一方法是要求用户允许通知。有人知道如何或是否可以在不嗖嗖作响和不询问用户通知权限的情况下做到这一点吗?
我添加了向firebase推送通知证书,并添加了firebase phone ui文档中列出的所有所需功能。
在不要求用户允许通知的情况下,从电话验证文档中列出的此功能不会被调用(用户还必须选择允许)
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// Pass device token to auth
Auth.auth().setAPNSToken(deviceToken, type: AuthAPNSTokenTypeProd)
// Further handling of the device token if needed by the app
// ...
}
如果未调用此函数,则未设置setAPNSToken,我将不会得到继续进行电话身份验证的静默通知,并且我将得到一般错误
身份验证错误:您的项目的Firebase电话号码验证设置,请确保遵循上的说明https://firebase.google.com/docs/auth/ios/phone-auth
我按照Firebase文档中的说明禁用了方法swizzling,然后实现了所有所需的方法,解决方案是我需要转到应用程序的功能,然后确保启用了后台模式和推送通知(这已经启用)。然后在后台模式下,我必须启用远程通知。
然后我不得不从我的设备上删除应用程序并重新安装。这解决了我的问题,并调用了注册通知所需的功能。