Kesalahan compiler Typescript saat masuk dengan Autentikasi Facebook


Kesalahan compiler Typescript saat masuk dengan Autentikasi Facebook.

Autentikasi Facebook bekerja dengan baik. Hanya saja compiler TypeScript yang tidak menyukai responsnya.

Kesalahan compiler Typescript adalah: "Properti 'facebook' tidak ada pada tipe FirebaseAuthData".

Berikut kode saya:

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

Dalam respons authData.facebook.email sepertinya ada kesalahan. Kode ini semuanya berjalan dengan baik dan bisa dijalankan. Tapi tidak dengan compiler TypeScript.

Saya perlu pergi: authData.facebook untuk mengakses bidang email tetapi TypeScript tampaknya bingung dengan apa itu facebook.

Jawaban #1

Jadi masalahnya adalah bahwa file firebase.d.ts utama sudah kedaluwarsa. Versinya adalah 2.0.2. Ini perlu diperbaiki (dan kemungkinan besar saya akan mengirimkan PR).

Tapi untuk sekarang kamu bisa menambahkan ini ke file firebase.d.ts untuk bisa mulai.

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

Ini akan memperbarui antarmuka sehingga kompilasi berhasil.