Typescript fordítóhiba a Facebook hitelesítéssel történő bejelentkezéskor
Typescript fordítóhiba a Facebook hitelesítéssel történő bejelentkezéskor.
A Facebook hitelesítés jól működik. Csak a TypeScript fordító nem szereti a választ.
A TypeScript fordítóhiba a következő: "A(z) 'facebook' tulajdonság nem létezik a(z) FirebaseAuthData típuson".
Íme a kódom:
public loginWithFacebook():void{
this.ref.authWithOAuthPopup("facebook", function(error, authData?) {
if (error) {
console.log("Login Failed!", error);
} else {
//Error here - Doesnt like authData.facebook.
let user = {
email : authData.facebook.email,
password : null,
uid: authData.uid
}
this.addUser(user);
}
});
}
Az authData.facebook.email válaszában úgy tűnik, hogy hiba van. Ez a kód mind jól működik és fut. De nem a TypeScript fordító.
El kell mennem: authData.facebook, hogy hozzáférjek az email mezőhöz, de a TypeScript úgy tűnik, összezavarodik azzal kapcsolatban, mi az a facebook.
Válasz #1
Tehát a probléma az, hogy a fő firebase.d.ts fájl elavult. A verziója 2.0.2. Ki kell javítani (és valószínűleg küldeni fogok egy PR-t).
De egyelőre hozzáadhatod ezt a firebase.d.ts fájlhoz, hogy továbbhaladj.
interface FirebaseAuthData {
uid: string;
provider: string;
token: string;
expires: number;
auth: Object;
google?: FirebaseAuthDataProvider;
facebook?: FirebaseAuthDataProvider;
}
interface FirebaseAuthDataProvider {
accessToken: string;
cachedUserProfile: any;
displayName: string;
email?: string;
id: string;
profileImageURL: string;
}
Ez frissíti a felületeket, így a fordítás működni fog.
