107 votes

Comment créer un objet "credential" requis par la méthode Web user.reauthenticate () de Firebase?

L' (pas clair), par exemple dans les nouveaux docs:

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

Avec la v3 Firebase client, comment dois-je créer cette credential objet?

J'ai essayé:

  • reauthenticate(email, password) (comme la méthode de login)
  • reauthenticate({ email, password }) (les docs de mentionner un argument uniquement)

Pas de chance :(

PS: je ne compte pas les heures perdues à la recherche de l'information pertinente dans les nouveaux docs... je m'ennuie tellement fabuleux firebase.com docs, mais je voulais passer à la v3 pour firebase.de stockage...

224voto

Pandaiolo Points 3398

J'ai réussi à le faire fonctionner, les documents devraient être mis à jour pour inclure ceci pour ceux qui ne veulent pas passer trop de temps dans la référence exhaustive, mais difficile à lire.

L'objet d'identification est créé comme suit:

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

39voto

maudulus Points 274

Réponse complète - vous pouvez effectuer les opérations suivantes:

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

Veuillez noter que reauthenticateWithCredential est la version mise à jour de reauthenticate()

0voto

adolfosrs Points 6458

Je suis d'accord que la documentation n'est pas assez clair sur ce point. Mais en regardant d'un peu plus près la référence de l'API, j'ai trouvé firebase.auth.AuthCredential et ce et je suppose que vous devriez être à la recherche pour le passer à reauthenticate().

Je devine ici, mais je voudrais commencer à essayer de connecter l' firebase.auth() pour voir si il n'y a aucun credential objet.

Je suppose qu'il va ressembler à quelque chose comme ce qui suit:

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

-2voto

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())
               ...
     }
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X