iOS: вход в учетную запись Firebase и Facebook

Я хотел спросить, может ли кто-нибудь направить меня к примеру или объяснению того, как я могу добавить телефонный логин для firebase, используя Facebook Account Kit.

Я получаю accessToken из комплекта учетной записи Facebook, а затем пытаюсь авторизоваться следующим образом.

fileprivate func authorizeWithAccessToken(_ accessToken: AKFAccessToken?, phoneNumber: AKFPhoneNumber?, error: NSError?) {
    guard let accessToken = accessToken else {
        return
    }

    FIRAuth.auth()?.signIn(withCustomToken: accessToken.tokenString) { (user, error) in
        if (error != nil) {
            print(error?.localizedDescription)
        } else {
            print("User logged in")
        }
    }
}

Но я получаю ошибку:

"Неверный формат токена. Пожалуйста, проверьте документацию". UserInfo={NSLocalizedDescription= Неверный формат пользовательского токена. Пожалуйста, проверьте документацию., Error_name=ERROR_INVALID_CUSTOM_TOKEN})

Вот мой токен:

EMAWeGCejpgSijO0ncgBYl7HxLTZBy0rWrwaHihA81ZB286EEPhdZCtDSWZAnajp8pmX10E1ZCJDV7Ghwz0NrxRMhZCgSPzZC9imjbamk8bvv2AZDZD

1 ответ

Почему вы используете customTokens для аутентификации Facebook вместо использования встроенных методов учетных данных, которые Firebase имеет для Facebook?

Вместо токена создайте объект учетных данных с библиотекой Facebook:

let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)

и передать этот объект signIn(with: ) метод.

FIRAuth.auth()?.signIn(with: credential) { (user, error) in
    if let err = error {
      print(err?.localizedDescription)
     return
   }

   // Do your stuff here....
}

Полную документацию по использованию Firebase и Facebook можно найти здесь

Другие вопросы по тегам