2

Derzeit versuchen, eine App mit ionic v2 & Firebase v3 zu bauen. Leider habe ich Probleme, die Details des angemeldeten Benutzers zu erfassen.Aktueller Benutzer in eckigen mit Firebase?

In meinem app.ts, schließe ich richtig meinen firebaseapp und die angemeldeten Benutzer erkannt wird und der Benutzer die Homepage wird angezeigt:

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); 

dann in einem anderen meine Dateien, in denen ich das abrufen möchte mit

var authData = firebase.auth().currentUser(); 

ich die folgenden Fehler in meiner Konsole angemeldet Benutzer-ID erhalten:

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] 

Ich bin verwirrt, warum currentUser() keine Funktion ist, wenn die Dokumentation sagt, dass es ist? https://firebase.google.com/docs/auth/web/manage-users#get_the_currently_signed-in_user

Danke!

Antwort

4

die Dokumentation sagt, dass

firebase.auth().currentUser NICHT firebase.auth().currentUser() der richtige Weg ist, den Benutzer

+0

Brilliant zu erhalten. Gerade aufgewacht ... du kannst sagen, dass ich diese Frage um 3 Uhr geschrieben habe und jetzt macht alles Sinn, warum ich das nicht bemerken konnte ... Danke! – Kyanite