Erreur du compilateur Typescript lors de la connexion avec l'authentification Facebook


Erreur du compilateur Typescript lors de la connexion avec l’authentification Facebook.

L'authentification Facebook fonctionne bien. C’est juste le compilateur TypeScript qui n’aime pas la réponse.

L'erreur du compilateur Typescript est : « La propriété 'facebook' n'existe pas sur le type FirebaseAuthData ».

Voici mon code :

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

Dans la réponse de authData.facebook.email, l'erreur semble être. Ce code fonctionne correctement et s'exécute. Mais pas le compilateur TypeScript.

J'ai besoin d'aller à : authData.facebook afin d'accéder au champ email, mais TypeScript semble être confus sur ce qu'est Facebook.

Réponse #1

Donc le problème est que le fichier principal firebase.d.ts est obsolète. Il est en version 2.0.2. Il doit être corrigé (et je vais probablement envoyer une PR).

Mais pour l'instant, vous pouvez ajouter ceci au fichier firebase.d.ts pour avancer.

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

Cela mettra à jour les interfaces afin que la compilation fonctionne.