Ionic / Firebase(Android) - signInWithCredentials无法正常工作

时间:2018-04-22 14:47:23

标签: angular firebase authentication ionic-framework ionic3

我使用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(如论坛数量中所述)。

所以我面临的错误:

  1. 我可以使用Facebook登录并且谷歌+电子邮件地址是相同的 - 使用sign in with popup时它在浏览器中不起作用所以为什么它在这种情况下有用?在浏览器中,当我从谷歌+注册,然后我尝试使用相同的电子邮件地址使用fb登录时,我会收到错误消息,如此电子邮件地址有一个帐户请选择正确的登录提供商&#39;。
  2. 我无法选择使用google或facebook登录的帐号 - 最让我烦恼的是,如果用户(像我这样)在同一部手机上有两个或更多fb和Google帐户会怎样?
  3. 我能否就解决这些问题寻求任何建议?

0 个答案:

没有答案