Error del compilador de Typescript al iniciar sesión con la autenticación de Facebook
Error del compilador de Typescript al iniciar sesión con la autenticación de Facebook.
La autenticación de Facebook funciona bien. Solo que al compilador de TypeScript no le gusta la respuesta.
El error del compilador de Typescript es: "La propiedad 'facebook' no existe en el tipo FirebaseAuthData".
Aquí está mi código:
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);
}
});
}
En la respuesta de authData.facebook.email parece estar el error. Este código funciona bien y se ejecuta. Pero no el compilador de TypeScript.
Necesito ir a: authData.facebook para poder acceder al campo de correo electrónico, pero TypeScript parece confundirse con lo que es Facebook.
Respuesta #1
Entonces, el problema es que el archivo principal firebase.d.ts está desactualizado. Está en la versión 2.0.2. Necesita ser corregido (y probablemente enviaré un PR).
Pero por ahora puedes agregar esto al archivo firebase.d.ts para empezar.
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;
}
Esto actualizará las interfaces para que la compilación funcione.
