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 显示错误