L'exemple (peu clair) dans la nouvelle documentation :
var user = firebase.auth().currentUser;
var credential;
// Prompt the user to re-provide their sign-in credentials
user.reauthenticate(credential).then(function() {
Avec le client v3 Firebase, comment dois-je créer cet objet credential
?
J'ai essayé:
reauthenticate(email, password)
(comme la méthode de connexion)reauthenticate({ email, password })
(la documentation ne mentionne qu'un seul argument)Pas de chance :(
PS: Je ne compte pas les heures perdues à chercher des informations pertinentes dans les nouveaux documents ... Je manque tellement les documents fabuleux de firebase.com, mais je voulais passer à la v3 pour firebase.storage ...
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
);
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()
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())
...
}
});
Je conviens que la documentation n'est pas très claire à ce sujet. Mais en regardant un peu plus loin sur la référence de l’API j’ai trouvé firebase.auth.AuthCredential et this et je suppose que vous devriez chercher à le transmettre à reauthenticate()
.
Je devine ici mais je commencerais par essayer de consigner la firebase.auth()
pour voir s’il existe un objet credential
.
Je suppose que cela ressemblera à ceci:
user.reauthenticate(firebase.auth().credential).then(function() {