Weboldal keresés

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.