Обновленный подход к повторной аутентификации пользователя - PullRequest
0 голосов
/ 04 сентября 2018

Я искал в документации Firebase и нашел способ повторной аутентификации пользователя, показанный ниже.

let user = Auth.auth().currentUser
var credential: AuthCredential

// Prompt the user to re-provide their sign-in credentials

user?.reauthenticate(with: credential) { error in
  if let error = error {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}

Я получаю сообщение об ошибке и предупреждение от компилятора следующим образом:

Ошибка:

Переменная 'учетные данные', используемая до инициализации

Внимание:

«Повторная аутентификация (с: завершение :)» устарела: используйте reauthenticateAndRetrieveDataWithCredential: завершение: для Objective-C или reauthenticateAndRetrieveData (WithCredential: завершение :) для Swift вместо этого.

У кого-нибудь есть пример обновленного метода?

1 Ответ

0 голосов
/ 04 сентября 2018
let user = Auth.auth().currentUser
var credential: AuthCredential
user?.reauthenticateAndRetrieveData(with: credential, completion: {(authResult, error) in
            if let error = error {
                // An error happened.
            }else{
                // User re-authenticated.
            }
        })

Вы получаете ошибку, потому что вы не инициализировали учетные данные Вы должны инициализировать AuthCredential first

Эти учетные данные могут отличаться от

EmailAuthCredential

FacebookAuthCredential

GithubAuthCredential

GoogleAuthCredential

PhoneAuthCredential

PlayGamesAuthCredential

TwitterAuthCredential

Инициализируйте переменную в соответствии с вашим методом аутентификации, например, если вы выбрали адрес электронной почты, вы можете использовать как

var credential: AuthCredential = EmailAuthProvider.credential(withEmail: "email", password: "pass")
...