URL перенаправления проверки электронной почты Firebase - PullRequest
0 голосов
/ 06 сентября 2018

Я включил Firebase's подтверждение по электронной почте для моего iOS мобильного приложения и пытаюсь решить следующие проблемы:

  1. Длина URL-адреса перенаправления появляется чрезвычайно long. Похоже, это повторяется.

https://app.page.link? Ссылка = https://app.firebaseapp.com//auth/action?apiKey%3XXX%26mode%3DverifyEmail%26oobCode%3XXX%26continueUrl%3Dhttps://www.app.com/?verifyemail%253Demail@gmail.com%26lang%3Den&ibi=com.app.app&ifl=https://app.firebaseapp.com//auth/action?apiKey%3XXX%26mode%3DverifyEmail%26oobCode%3XXX%26continueUrl%3Dhttps://www.app.com/?verifyemail%253Demail@gmail.com%26lang%3Den

  1. Когда я устанавливаю handleCodeInApp равным true и перенаправляется обратно в приложение, когда я нажимаю на URL перенаправления, электронная почта пользователя не подтверждается. Принимая во внимание, что я установил его в false и прошел Firebase's предоставленный веб-виджет, это действительно проверено. Не удалось найти документацию, которая описала бы обработку первого в быстром ...

Любые мысли приветствуются.

func sendActivationEmail(_ user: User) {
        let actionCodeSettings = ActionCodeSettings.init()
        let redirectUrl = String(format: "https://www.app.com/?verifyemail=%@", user.email!)

        actionCodeSettings.handleCodeInApp = true
        actionCodeSettings.url = URL(string: redirectUrl)
        actionCodeSettings.setIOSBundleID("com.app.app")

        Auth.auth().currentUser?.sendEmailVerification(with: actionCodeSettings) { error in
            guard error == nil else {
                AlertController.showAlert(self, title: "Send Error", message: error!.localizedDescription)
                return
            }
        }
    } 

1 Ответ

0 голосов
/ 07 сентября 2018

Убедитесь, что вы проверяете oobCode, который является частью URL-адреса обратного вызова.

    Auth.auth().applyActionCode(oobCode!, completion: { (err) in

            if err == nil {

                // reload the current user
            }   
        })

Как только вы это сделаете, попробуйте перезагрузить профиль пользователя с сервера после проверки электронной почты.

Auth.auth().currentUser?.reload(completion: {
        (error) in

        if(Auth.auth().currentUser?.isEmailVerified)! {

            print("email verified")
        } else {

            print("email NOT verified")
        }
      })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...