Checking if user is still authenticated in angularfire2

brijmcq picture brijmcq · Apr 15, 2017 · Viewed 7.3k times · Source

I have a working authentication using the angularfire2, I am just wondering if there is another way to check if the user is authenticated after the user recently logged in w/o hitting the server? The way I do this is like this

isAuthenticated():boolean{
 this.af.auth.subscribe(data => {
  if(data ){
  // User is authenticated
    return true;
  }
});
}

Any help is appreciated

Edit 1:

I decided to still use the original code to check if the user is recently logged in. What @cartant suggested is good enough when you are not checking the user at the start up of your application because it might return null as stated in the firebase official docs. The way I used it here is that I have menu items that should only be shown to authenticated users and using firebase.auth().currentUser will always return null on the initial load of the page.

Answer

cartant picture cartant · Apr 15, 2017

AngularFire2 is currently undergoing some refactoring and significant portions of its authentication API are going to be removed in favour of using the Firebase Web API in conjunction with AngularFire2. There is more information in this issue.

The observable that you have used will remain in AngularFire2 and you can subscribe to it to receive notifications of changes in the authentication state.

However, if all you are interested in is determining whether or not there is a currently authenticated user, there is a currentUser property in the Firebase Web API that will tell you that:

import * as firebase from "firebase";
...
console.log(firebase.auth().currentUser);