2

Ich mache ein Ionic 2 Projekt mit Firebase 3 JS SDK.Firebase Facebook Login mit Ionic

Ich habe ein Problem, wenn ich versuche, mich mit Facebook über den Firebase FacebookAuthProvider einzuloggen.

Wenn ich versuche, die AuthCredential vom FacebookAuthProvider zu erhalten mit

let provider = new firebase.auth.FacebookAuthProvider(); 
let credential = provider.credential(response.authResponse.accessToken); 

Am provider.credential sagt es provider.credential keine Funktion ist.

Hier ist meine volle SerivceProvider Funktion:

loginUserFacebook() { 
Facebook.login(['email']) 
.then(
    (response) => { 
    let credential: firebase.auth.AuthCredential; 
    credential = new firebase.auth.FacebookAuthProvider().credential(response.authResponse.accessToken); 
    this.fireAuth.signInWithCredential(credential); 
    } 
) 
.catch(
    (error) => { 
    var errorMessage: string = error.message; 
    let prompt = Alert.create({ 
     message: errorMessage, 
     buttons: [{text: "Ok"}] 
    }); 

    this.nav.present(prompt); 
    } 
); 

}

Ich importieren import { Facebook } from 'ionic-native';
und haben die cordova-plugin-facebook4

Danke für die Hilfe installiert!

Antwort

1

Es ist eine statische JavaScript-Methode. Ändern zu:

let credential = firebase.auth.FacebookAuthProvider.credential(response.authResponse.accessToken); 
+0

Wenn ich es als eine statische Methode verwenden und versuchen, mit 'ionischen Lauf zu kompilieren android' folgende erro zeigt, während die Auth-data.ts Datei zu kompilieren : 'Fehler TS2339: Eigenschaft 'Credential' existiert nicht auf Typ 'typeof FacebookAuthProvider'. [20:41:51] Beendet 'Build' nach 3,31 s' – Lirianer

+3

Eigentlich ist dies ein Fehler in den Typoskript-Definitionen. Das Firebase-Team wurde benachrichtigt und arbeitet an einer Fehlerbehebung. Verwenden Sie in der Zwischenzeit die folgende Problemumgehung: ( firebase.auth.FacebookAuthProvider) .credential – bojeil

+0

Danke, das hat funktioniert! Entschuldigung für die späte Antwort. – Lirianer

0

Eigentlich ist dies ein Fehler in der typescript definitions. Das Team Firebase wurde benachrichtigt und arbeitet an einer Lösung. In der Zwischenzeit verwenden Sie die folgende Abhilfe: ---

(<any> firebase.auth.FacebookAuthProvider).credential