Повторная аутентификация учетных данных пользователя Swift

Я хочу повторно аутентифицировать пользователя, прежде чем позволить ему изменить свою регистрационную информацию. Однако из-за недавнего обновления Firebase я нашел документацию довольно бесполезной. С помощьюэта ссылка Я создал следующую функцию authenticateUser ().

func authenticateUser()
{
    let user = FIRAuth.auth()?.currentUser
    var credential: FIRAuthCredential

    //prompt user to re-enter info

    user?.reauthenticateWithCredential(credential, completion: { (error) in
        if error != nil
        {
            self.displayAlertMessage("Error reauthenticating user")
        }
        else
        {
            //user reauthenticated successfully
        }
    })
}

Однако я не уверен, что делать с переменной учетных данных типа FIRAuthCredential для повторной аутентификации пользователя. Документацию для этого класса можно найтиВот.

Ответы на вопрос(2)

но принцип все еще остается. Для вашего удобства:

    let eMail = EmailAuthProvider.credential(withEmail: "[email protected]", password: "somepassword")
    let fb = FacebookAuthProvider.credential(withAccessToken: "xxx")
    let g = GoogleAuthProvider.credential(withIDToken: "xxx", accessToken: "xxx")
    ...

    Auth.auth().currentUser?.reauthenticate(with: eMail, completion: {
        [weak self]
        (error) in
        ...
    })
 HixField25 дек. 2018 г., 06:59
Я не пользуюсь firebaseui, извините
 Hüseyin Avni YALÇIN24 дек. 2018 г., 09:34
let authentication = user.authentication отсутствует, как мы можем получить этот HixField?
 HixField24 дек. 2018 г., 10:29
Извините, не понимаю вашего вопроса. Можете быть более конкретными?
 Visal Sambo30 янв. 2019 г., 12:28
как насчет повторной аутентификации номера телефона?
 Hüseyin Avni YALÇIN24 дек. 2018 г., 11:37
Мне нужно изменить адрес электронной почты для учетных записей Google. Я использую функцию currentUser.updateEmail (), которая требует currentUser.reauthenticate (). Однако я не могу получить GIDSignIn.sharedInstance (). CurrentUser.authentication для получения IdToken и AccessToken. GIDSignIn.sharedInstance (). CurrentUser возвращает ноль. Я использую FirebaseAuthUI для входа и регистрации. И мой текущий пользователь = Auth.auth (). CurrentUser не имеет свойства аутентификации
Решение Вопроса

ПолучениеFIRAuthCredential Объект зависит от того, какого провайдера вы хотите использовать для повторной аутентификации.

Эл. адрес:
let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email, password: password)
facebook:
let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString)
Twitter:
let credential = FIRTwitterAuthProvider.credentialWithToken(session.authToken, secret: session.authTokenSecret)
Google:
let authentication = user.authentication
let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken)
 Clint04 авг. 2019 г., 18:35
Что я могу указать в полях электронной почты и пароля?

Ваш ответ на вопрос