Typescript-kompilatorfeil ved pålogging med Facebook-autentisering


Typescript-kompilatorfeil ved pålogging med Facebook-autentisering.

Facebook-autentiseringen fungerer fint. Det er bare TypeScript-kompilatoren som ikke liker svaret.

Typescript-kompilatorfeil er: "Egenskapen 'facebook' eksisterer ikke på typen FirebaseAuthData".

Her er koden min:

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

I responsen fra authData.facebook.email ser det ut til å være en feil. Denne koden fungerer helt fint og kjører. Men ikke TypeScript-kompilatoren.

Jeg trenger å gå til: authData.facebook for å få tilgang til e-postfeltet, men Typescript ser ut til å bli forvirret over hva facebook er.

Svar #1

Så problemet er at hovedfilen firebase.d.ts er utdatert. Den er på versjon 2.0.2. Den må korrigeres (og jeg kommer sannsynligvis til å sende inn en PR).

Men for nå kan du legge dette til i firebase.d.ts-filen for å komme i gang.

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

Dette vil oppdatere grensesnittene slik at kompileringen fungerer.