使用 Facebook 身份验证登录时的 Typescript 编译器错误
使用 Facebook 认证登录时的 Typescript 编译器错误。
Facebook 身份验证工作正常。只是 TypeScript 编译器不喜欢这个响应。
TypeScript 编译器错误是:"属性 'facebook' 在类型 FirebaseAuthData 上不存在"。
这是我的代码:
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);
}
});
}
在 authData.facebook.email 的响应中似乎出现了错误。这段代码运行正常,没有问题。但 TypeScript 编译器不行。
我需要访问 authData.facebook 来获取电子邮件字段,但 TypeScript 似乎对 facebook 是什么感到困惑。
答案#1
所以问题在于主要的 firebase.d.ts 文件已经过时。它的版本是 2.0.2。需要进行修正(我可能会提交一个 PR)。
但现在你可以将此添加到 firebase.d.ts 文件中以继续操作。
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;
}
这将更新接口,以便编译能够正常工作。
