Angular Ionic/Firebase(Android)-使用凭据登录无法正常工作
我用Ionic 3和Firebase数据库制作了一个简单的登录系统。我做这件事经历了地狱般的痛苦,因为在浏览器上工作的东西不一定在android上工作。不管怎么说,我让这个工作,但有几个错误(?)我不知道如何解决 我将从一些代码开始,因此您应该知道我在说什么: 我的facebook登录方法如下所示:Angular Ionic/Firebase(Android)-使用凭据登录无法正常工作,angular,firebase,authentication,ionic-framework,ionic3,Angular,Firebase,Authentication,Ionic Framework,Ionic3,我用Ionic 3和Firebase数据库制作了一个简单的登录系统。我做这件事经历了地狱般的痛苦,因为在浏览器上工作的东西不一定在android上工作。不管怎么说,我让这个工作,但有几个错误(?)我不知道如何解决 我将从一些代码开始,因此您应该知道我在说什么: 我的facebook登录方法如下所示: async nativeFbLogin(): Promise<void> { this.toast.create({ message: "ZAczynam", duration: 2
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 nativeFbLogin():Promise{
create({消息:“ZAczynam”,持续时间:2000}).present();
返回这个.fb.login([“email”,“public_profile”])。然后(res=>{
const facebookCredential=firebase.auth.FacebookAuthProvider.credential(
res.authResponse.accessToken
);
返回火基
.auth()
.signInWithCredential(facebookCredential)
。然后(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();
}
}
async nativeGoogleLogin():Promise{
试一试{
const gplususer=等待this.gplus.login({
网络客户端:
“布拉布拉赫”,
离线:对
});
返回等待此。fire.auth
.signInWithCredential(
firebase.auth.GoogleAuthProvider.credential(gplususer.idToken)
)
.然后(r=>{
这是makeToast(“zalogowano”);
});
}捕捉(错误){
create({message:“error”+err,duration:3000}).present();
}
}
正如您所看到的,我使用了signInWithCredential
方法,因为只有这种方法在andoroid上有效(如许多论坛中提到的)
因此,我面临的是:
使用弹出窗口登录时,它在浏览器中不起作用,那么为什么它在这种情况下起作用呢?在浏览器中,当我从google+注册,然后尝试使用相同的电子邮件地址使用fb登录时,我会收到类似“有一个帐户使用此电子邮件地址,请选择正确的登录提供商”的错误
我可以问一下解决这个问题的建议吗?可能是与google和FaceBook中api设置的允许来源有关。也可以检查控制台中的“cordova not available”(cordova not available)或控制台中的某些内容,如果是,则表示浏览器不支持某些插件