2016-07-13 11 views
2

Ich bin neu in Firebase, aber ich möchte es in meinem aktuellen angular2 Projekt verwenden. Ich stehe mit Email-Passwort-Authentifizierung unter Verwendung Angularfire2 fest. Soweit ich die API verstehe, müssen Sie die signInWithEmailAndPassword(email, password) Methode des firebase.auth.Auth Objekts aufrufen. Ich weiß jedoch nicht, wie ich eine Instanz dieses "Auth" bekommen soll. Ich habe eine example für die Authentifizierung im Allgemeinen gefunden. In diesem Beispiel wird jedoch keine E-Mail-/Kennwortauthentifizierung verwendet. Ich kann kein Beispiel finden, wie man die oben genannte Methode richtig nennt.Authentifizierung Email/Passwort mit Firebase sdk3 und Angularfire2

Ich habe einige JS-Beispiele gefunden. Dort wird das Auth-Objekt irgendwie injiziert. Das scheint nicht so zu funktionieren, wie ich es versucht habe. Dies ist, was ich habe bisher (nicht funktioniert):

main.ts

bootstrap(AppComponent, [..., FIREBASE_PROVIDERS, 
defaultFirebase({ 
    apiKey: "<>", 
    authDomain: "<>", 
    databaseURL: "<>", 
    storageBucket: "<>", 
}),firebaseAuthConfig({ 
    provider: AuthProviders.Password, 
    method: AuthMethods.Password 
}), AuthService]) 
.catch(err => console.error(err)); 

auth.service.ts:

@Injectable() 
export class AuthService{ 

private _authState: FirebaseAuthState = null; 

constructor(private _fireAuth:FirebaseAuth, private _af:AngularFire, private _auth:Auth){ 
    _fireAuth.subscribe((state:FirebaseAuthState) =>{ 
     this._authState = state; 
    }); 
} 

get authenticated():boolean{ 
    return this._authState !== null; 
} 

get id(): string { 
    return this.authenticated ? this._authState.uid : ''; 
} 

signIn(email:string, password:string):Promise<User>{ 
    return this._auth.signInWithEmailAndPassword(email, password); 
} 
... 

Meine App startet nicht sogar -> Fehler Cannot resolve all parameters for 'AuthService'(FirebaseAuth, AngularFire, ?). Wenn ich versuche, this._af.auth().signInWithEmailAndPassword(email, password) zu verwenden, klagt der Typescript-Compiler: error TS2349: Cannot invoke an expression whose type lacks a call signature. Das Ignorieren des Compiler-Fehlers und das Ausführen des Programms führt zu einem Fehler TypeError: this._af.auth is not a function.

Vielen Dank für Ihre Hilfe!

#AskFirebase

Antwort

2

Nun, ich immer noch nur knapp sein Ziel herauszufinden, wie die signInWithEmailAndPassword Methode zu verwenden. Ich konnte mich jedoch mit E-Mail/Passwort einloggen. Sie können einfach

signIn(email:string, password:string){ 
    _fireAuth.login({ 
    email: email, 
    password: password 
    }); 
} 

verwenden, wobei _fireAuth vom Typ FirebaseAuth ist.

Verwandte Themen