我使用Ionic 3和Firebase数据库创建了一个简单的登录系统。我经历了这样做,因为在浏览器上工作的东西不一定在android上工作。无论如何我有这个工作,但有几个错误(?),我不知道如何解决。
我将从一些代码开始,所以你应该知道我在说什么:
我使用facebook方法的登录信息如下:
async nativeFbLogin(): Promise<void> {
this.toast.create({ message: "ZAczynam", duration: 2000 }).present();
return this.fb.login(["email", "public_profile"]).then(res => {
const facebookCredential = firebase.auth.FacebookAuthProvider.credential(
res.authResponse.accessToken
);
return firebase
.auth()
.signInWithCredential(facebookCredential)
.then(res => {
this.makeToast(JSON.stringify(res));
});
});
}
和谷歌登录:
async nativeGoogleLogin(): Promise<void> {
try {
const gplususer = await this.gplus.login({
webClientId:
"blahblah",
offline: true
});
return await this.fire.auth
.signInWithCredential(
firebase.auth.GoogleAuthProvider.credential(gplususer.idToken)
)
.then(r => {
this.makeToast("zalogowano");
});
} catch (err) {
this.toast.create({ message: "error" + err, duration: 3000 }).present();
}
}
正如您所看到的,我使用signInWithCredential
方法,因为这只适用于andoroid(如论坛数量中所述)。
所以我面临的错误:
sign in with popup
时它在浏览器中不起作用所以为什么它在这种情况下有用?在浏览器中,当我从谷歌+注册,然后我尝试使用相同的电子邮件地址使用fb登录时,我会收到错误消息,如此电子邮件地址有一个帐户请选择正确的登录提供商&#39;。我能否就解决这些问题寻求任何建议?