1
我正在使用Fireface登錄Facebook的Ionic應用程序。對於我跟着這裏的文檔:https://github.com/angular/angularfire2/blob/master/docs/Auth-with-Ionic2.mdTypeScript:返回Promise的結果
幾乎在文檔的最後,你可以看到一段代碼,做的FB登陸(使用本機FB應用程序如果可用):
signInWithFacebook(): firebase.Promise<FirebaseAuthState> {
if (this.platform.is('cordova')) {
return Facebook.login(['email', 'public_profile']).then(res => {
const facebookCredential = firebase.auth.FacebookAuthProvider.credential(res.authResponse.accessToken);
return firebase.auth().signInWithCredential(facebookCredential);
});
} else {
...
}
}
這有種方法signInWithFacebook返回類型的螺絲。實際上,這個方法應該返回由Facebook.login(...)觸發的Promise結果 - 但它確實返回了具有不同數據類型的FacebookLogin-Promise本身。 我有點困惑,我可以重新建模這些行以正確返回由firebase.auth()創建的Promise。signInWithCredential(facebookCredential)。
你有任何提示/想法?
非常感謝!
還沒有使用標誌性的庫,所以不知道你實際上正在接受什麼。你能詳細解釋一下你的意思嗎?實際上,方法應該返回「 –
signInWithFacebook的返回類型是firebase.Promise。但Facebook.login()的返回類型是Promise - 它不兼容。但是解決Facebook.login()的Promise的結果將符合signInWithFacebook的方法定義。我試圖做的是返回已解決的Promise(由Facebook.login()創建)的結果 - 而不是Promise本身。 –
Daniel
'return firebase.auth.FacebookAuthProvider.credential(res.authResponse.accessToken).then((facebookCredential)=> firebase.auth()。signInWithCredential(facebookCredential));'? – n00dl3