我计划对我的webapp使用Firebase的提供程序身份验证,但它似乎无法在移动设备上运行。该网站现场直播:
然后它应该转到谷歌提供商认证流程。
我的代码如下:
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”,但是当我在我的华为Honor手机上调用这些方法时,没有任何事情发生(在任何浏览器中)。
我在这里做错了什么,或者Firebase网络身份验证是否无法在移动设备上运行?
答案 0 :(得分:15)
这有点令人尴尬,但它可能对其他人有帮助。真正的问题是没有与移动设备有任何关系,但实际上我使用的是自定义域,并且忘记在控制台的auth部分添加它。当我使用chrome dev工具打开测试生产应用程序时,我可以在控制台中看到此错误:
答案 1 :(得分:0)
前段时间,我正在尝试类似的尝试,并且很长一段时间以来,我都放弃了这种登录方式,因为在开发阶段它对我不起作用。
正是出于这个原因,因为在开发阶段,我通过地址类型192.157.2.3:3000进入服务器
尝试使用signInWithPopup和signInWithRedirect 对我没用
错误是firebase不支持来自192.157.2.3:3000的请求,这一问题已经在生产中通过“ firebase部署”简单地解决了。
Here是一个示例,即使Angular相同