Taylor Austin
Taylor Austin

Reputation: 5987

TypeError: Cannot read property 'credential' of undefined with firebase reauthenticateWithCredential

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

Answers (3)

Stuart
Stuart

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

somejhereandthere
somejhereandthere

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

davychhouk
davychhouk

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

Related Questions