Reputation: 5987
Not exactly sure what I am doing wrong here, I have looked at other forum post and this is what they say to do to re-auth a user. But I am getting an error of:
TypeError: Cannot read property 'credential' of undefined
on this line here:
const credentials = fire.auth.EmailAuthProvider.credential(currentUser.email, user.currentPass);
Here is the code:
const currentUser = fire.auth().currentUser;
const credentials = fire.auth.EmailAuthProvider.credential(currentUser.email, user.currentPass);
currentUser
.reauthenticateWithCredential(credentials)
.then(() => {
alert('Success');
})
.catch(err => {
alert(err);
});
Upvotes: 8
Views: 7326
Reputation: 55
I had the same issue as you and none of these answers helped me.
This worked for me:
const cred = fire.firebase_.auth.EmailAuthProvider.credential(email, password);
I'm not entirely sure why, but I just tried all the options available on fire
in the dev tools until I came across firebase_ which had the option of EmailAuthProvider
. Maybe someone else here knows why.
Upvotes: 0
Reputation: 351
Like @bojeil answered, it's a namespace so, for instance and if you're using typescript and you used firebase.initializeApp(config);
in another class, just add again the import in the class where you user the credential method with import * as Firebase from 'firebase/app';
As u can see in the doc credential
it's a static method in a static class that's why you need the namespace.
Upvotes: 4
Reputation: 1613
You've imported firebase in the wrong way. Here is what it says in the document. Official Document
const firebase = require('firebase');
const cred = firebase.auth.EmailAuthProvider.credential(
email,
password
);
Upvotes: 2