recaptcha验证后的空白页使用电话号码Swift在iOS上使用Firebase进行身份验证

yizd12fk  于 2023-03-28  发布在  Swift
关注(0)|答案(5)|浏览(285)

在recaptcha验证后,页面只返回空白。它没有做下一步。

屏幕截图

vhipe2zx

vhipe2zx1#

在应用委托的application(_:open:options:)方法中,调用Auth.auth().canHandle(url)

nkkqxpd9

nkkqxpd92#

对于空白的重新验证码页面问题,我能够通过做以下3件事来解决它:
第一件事-
1.在GoogleSerivce-Info.plist文件中,确保REVERSED_CLIENT_ID已添加到您的项目via the URL types using this中。按照第二步的第一部分操作:* 将自定义URL方案添加到您的Xcode项目 *(请查看屏幕截图)。

第二件事-
1.在项目导航器中选择blue project icon
1.选择Capabilities
1.打开Background Modes
1.选择Background fetch

第三件事-
1.在验证电话号码之前,请致电PhoneAuthProvider.provider(auth: Auth.auth())

@IBAction func phoneButton(sender: UIButton) {

    // ***step 5***
    PhoneAuthProvider.provider(auth: Auth.auth())

    PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumberTextField.text!, uiDelegate: nil) {
        (verificationID, error) in
            
        if let error = error {
            print(error.localizedDescription)
            return
        }
            
        guard let verificationId = verificationID else { return }

        // do something with verificationID
    }
}
vmjh9lq9

vmjh9lq93#

在iOS上,在调用verifyPhoneNumber之前,appVerificationDisabledForTesting设置必须设置为TRUE。这是在不需要任何APNs令牌或在后台发送静默推送通知的情况下处理的,从而更容易在模拟器中进行测试。这也禁用了reCAPTCHA回退流程。
Firebase文档

z9ju0rcb

z9ju0rcb4#

我面对这个问题,并通过将此代码添加到我的AppDelegate.m中来解决它

- (BOOL) application: (UIApplication *) app
             openURL: (NSURL *) url
             options: (NSDictionary <UIApplicationOpenURLOptionsKey, id> *) 
               options {
                      if ([[FIRAuth auth] canHandleURL: url]) {
                           return YES;
                       } else {
                       // URL not auth related, developer should handle it.
                          return NO;
                       }
             }
mklgxw1f

mklgxw1f5#

如果有人遇到这样的问题,试试这个。

// Before verifyPhoneNumber Method

Auth.auth().settings?.isAppVerificationDisabledForTesting = true

       PhoneAuthProvider.provider().verifyPhoneNumber( ....

相关问题