【问题标题】:Firebase Web Auth Doesn't Work On Mobile Devices?Firebase Web Auth 在移动设备上不起作用?
【发布时间】:2017-05-14 00:27:25
【问题描述】:

我计划对我的 web 应用使用 Firebase 的提供商身份验证,但它似乎不适用于移动设备。该网站在这里:

https://cypher.city

然后当您单击此按钮时:

将出现一个弹出窗口。当您单击此按钮时:

那么它应该进入谷歌提供商身份验证流程。

我的代码如下所示:

var provider = new firebase.auth.GoogleAuthProvider();
  firebase.auth().signInWithRedirect(provider).then((result) => {
    // console.log('@$ signin wiht google worked!' + e +', user is: ' + firebase.auth().currentUser.uid);
    console.log('@$ signin wiht google worked!' + result.user);

  }).catch((e) => {
    console.log('@$ signin wiht google failed!' + e);

    firebase.auth().signInAnonymously().then((user) => {
      console.log('@$ signed in anonymously againQ ' + user.uid);
      // console.log('@$ and firebase knows it: ' + firebase.auth().currentUser.uid);
    }).catch((e) => {
      console.log('@$ signed in anonymously failed ' + e);

    })

  })

问题在于,虽然这在桌面设备上效果很好,但在移动设备上却完全不起作用。我已经尝试过“signInWithRedirect”和“signInWithPopup”,但是当我在我的华为荣耀手机上调用这些方法时,没有任何反应(在任何浏览器中)。

我在这里做错了什么还是 Firebase 网络身份验证无法在移动设备上运行?

【问题讨论】:

    标签: javascript typescript firebase firebase-authentication google-authentication


    【解决方案1】:

    这有点令人尴尬,但它可能对其他人有所帮助。事实证明,真正的问题与移动设备无关,但实际上我使用的是自定义域并且忘记将其添加到控制台的 auth 部分。当我打开 chrome 开发工具测试生产应用程序时,我可以在控制台中看到这个错误:

    在 Firebase 控制台的这一部分添加我的自定义域有效:

    【讨论】:

    • 哈哈,这里也一样:)
    【解决方案2】:

    前段时间我在尝试类似的东西,很长一段时间我都放弃了这种登录方式,因为在开发阶段它不适合我。

    正是出于这个原因,因为在开发阶段,我通过地址类型 192.157.2.3:3000 进入我的服务器

    尝试使用 signInWithPopup 和 signInWithRedirect 它对我不起作用

    错误是firebase不支持来自192.157.2.3:3000的请求,这个问题已经在生产中通过“firebase deploy”简单地解决了。

    Here 是一个例子,尽管 Angular 是一样的

    【讨论】:

      猜你喜欢
      • 2019-11-23
      • 1970-01-01
      • 2022-01-12
      • 2014-04-22
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      相关资源
      最近更新 更多