Firebase Web Auth 在移动设备上不起作用?

Posted

技术标签:

【中文标题】Firebase Web Auth 在移动设备上不起作用?【英文标题】:Firebase Web Auth Doesn't Work On Mobile Devices? 【发布时间】: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 网络身份验证无法在移动设备上运行?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

哈哈,这里也一样:)【参考方案2】:

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

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

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

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

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

【讨论】:

以上是关于Firebase Web Auth 在移动设备上不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter firebase_auth signInWithCredential 在android上不起作用

Firebase v9 在移动设备上加载大型 iframe.js (263K)

AngularFire - Firebase Auth 显示错误

JQuery 滚动按钮在某些浏览器和移动设备上不起作用

android firebase后台通知仅在vivo设备上不起作用

react-konva Text - onClick 在移动设备上不起作用