Currently trying to build an app using ionic v2 & firebase v3. Unfortunately I'm struggling to simply grab hold of the logged in user's details.
In my app.ts, I connect correctly to my firebaseapp and the logged in user is recognised and the user is shown the homepage:
import {Component} from '@angular/core';
import {Platform, ionicBootstrap, NavController} from 'ionic-angular';
import {StatusBar} from 'ionic-native';
import {HomePage} from './pages/home/home';
declare var firebase:any;
import {Data} from './providers/data/data';
import {LoginPage} from './pages/login/login';
@Component({
template: '<ion-nav [root]="rootPage"></ion-nav>',
providers: [Data]
})
export class MyApp {
rootPage: any = LoginPage;
constructor(platform: Platform) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
// Initialize Firebase
var config = {
apiKey: "xxxx",
authDomain: "xxxx.firebaseapp.com",
databaseURL: "https://xxxx.firebaseio.com",
storageBucket: "xxxx.appspot.com",
};
firebase.initializeApp(config);
firebase.auth().onAuthStateChanged((user) => {
if (user) {
// If there is a user, take him to home page.
console.log("User is logged in!");
//console.log(user);
this.rootPage = HomePage;
} else {
// If there is no user logged in, send to login page.
this.rootPage = LoginPage;
}
});
});
}
}
ionicBootstrap(MyApp);
Then in another of my files where I wish to retrieve the logged in user's ID using
var authData = firebase.auth().currentUser();
I get the following error in my console:
EXCEPTION: Error: Uncaught (in promise): EXCEPTION: Error in :0:0
ORIGINAL EXCEPTION: TypeError: firebase.auth(...).currentUser is not a function
ORIGINAL STACKTRACE:
TypeError: firebase.auth(...).currentUser is not a function
at new AddItemPage (http://localhost:8100/build/js/app.bundle.js:97:40)
at DebugAppView._View_AddItemPage_Host0.createInternal (AddItemPage_Host.template.js:20:27)
at DebugAppView.AppView.create (http://localhost:8100/build/js/app.bundle.js:30016:21)
at DebugAppView.create (http://localhost:8100/build/js/app.bundle.js:30228:44)
at ComponentFactory.create (http://localhost:8100/build/js/app.bundle.js:29245:36)
at ViewContainerRef_.createComponent (http://localhost:8100/build/js/app.bundle.js:30436:45)
at http://localhost:8100/build/js/app.bundle.js:53117:47
at ZoneDelegate.invoke (http://localhost:8100/build/js/zone.js:323:29)
at Object.onInvoke (http://localhost:8100/build/js/app.bundle.js:35470:41)
at ZoneDelegate.invoke (http://localhost:8100/build/js/zone.js:322:35)
ERROR CONTEXT:
[object Object]
I'm confused as to why currentUser() is not a function, when the documentation says it is? https://firebase.google.com/docs/auth/web/manage-users#get_the_currently_signed-in_user
Thanks!
the documentation says that
firebase.auth().currentUser
NOT firebase.auth().currentUser()
is the correct way to get the user
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With