Подтвердить что ты не робот

Как создать объект "учетных данных", необходимый для метода веб-пользователя Firebase web.reauthenticate()?

(нечеткий) пример в новых документах:

var user = firebase.auth().currentUser;
var credential;
// Prompt the user to re-provide their sign-in credentials
user.reauthenticate(credential).then(function() {

С клиентом v3 Firebase, как мне создать этот объект credential?

Я пробовал:

  • reauthenticate(email, password) (например, метод входа)
  • reauthenticate({ email, password }) (в документах упоминается только один аргумент)

Не повезло: (

PS: Я не считаю часы потраченными впустую на поиск соответствующей информации в новых документах... Я так скучаю по невероятным документам firebase.com, но хотел переключиться на v3 для firebase.storage...

4b9b3361

Ответ 1

Мне удалось заставить его работать, документы должны быть обновлены, чтобы включить это для тех, кто не хочет тратить слишком много времени на исчерпывающую, но трудночитаемую ссылку.

Объект учетных данных создается следующим образом:

const user = firebase.auth().currentUser;
const credential = firebase.auth.EmailAuthProvider.credential(
    user.email, 
    userProvidedPassword
);

Ответ 2

Полный ответ - вы можете сделать следующее:

var user = firebase.auth().currentUser;
var credentials = firebase.auth.EmailAuthProvider.credential(
  user.email,
  'yourpassword'
);
user.reauthenticateWithCredential(credentials);

Обратите внимание, что reauthenticateWithCredential - это обновленная версия reauthenticate()

Ответ 3

Я согласен с тем, что документация не совсем понятна. Но, глядя немного глубже на ссылку API, я нашел firebase.auth.AuthCredential и this, и я предполагаю, что вы должны перейти к reauthenticate().

Я угадываю здесь, но я начал бы пытаться зарегистрировать firebase.auth(), чтобы увидеть, есть ли там какой-либо объект credential.

Я предполагаю, что он будет выглядеть примерно так:

user.reauthenticate(firebase.auth().credential).then(function() {

Ответ 4

final FirebaseUser fireBaseUser = FirebaseAuth.getInstance().getCurrentUser();
AuthCredential credential = EmailAuthProvider.getCredential(fireBaseUser.getEmail(), storedPassword);
fireBaseUser.reauthenticate(credential).addOnCompleteListener(new OnCompleteListener<Void>() {
     @Override
     public void onComplete(@NonNull Task<Void> reAuthenticateTask) {
          if (!reAuthenticateTask.isSuccessful())
               ...
     }
});