首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在移动设备中,当通过内置浏览器使用时,Firebase signInWithPopup会阻止auth/弹出。

在移动设备中,当通过内置浏览器使用时,Firebase signInWithPopup会阻止auth/弹出。
EN

Stack Overflow用户
提问于 2016-10-06 14:12:55
回答 4查看 20.1K关注 0票数 23

问题:当通过第三方应用程序内置浏览器(如线条、Twitter或Facebook信使)使用时,signInWithPopup会返回auth/popup-blocked。Firebase docs的解释是:

  • auth/ popup -阻止:如果弹出被浏览器阻止,则抛出,通常是在单击处理程序之外触发此操作时。

触发这一错误的典型顺序是:我的web应用程序的链接被发送到LINE、Twitter或Facebook信使。当用户使用移动设备并在这些应用程序中打开该链接时,他们的内置浏览器将被打开。然后调用signInWithPopup返回错误。在iOS和Android中,这种行为略有不同,但至少iOS/LINE组合会导致错误。

我正在使用角和建立一个网络应用程序。错误消息是Unable to establish a connection with the popup. It may have been blocked by the browser.,它来自firebase.js,而不是我自己的文本。

当在普通浏览器中使用时,注册工作正常。

你知道为什么内置浏览器和signInWithPopup不一起工作吗?

EN

Stack Overflow用户

发布于 2018-05-12 15:59:03

signInWithPopup()是用于浏览器的,但是,如果您正在运行iOS或Andriod模拟器或设备,则需要调用signInWithCredential

代码语言:javascript
运行
复制
signInWithFacebook() {
    if (this.platform.is('cordova')) {
      return this.fb.login(['email', 'public_profile']).then(res => {
        const facebookCredential = firebase.auth.FacebookAuthProvider.credential(res.authResponse.accessToken);
        return firebase.auth().signInWithCredential(facebookCredential);
      })
    }
    else {
      return this.afAuth.auth
        .signInWithPopup(new firebase.auth.FacebookAuthProvider())
        .then(res => console.log(res));
    }
  }

如果您正在使用Ionic + Firebase,您可以找到更多的信息这里

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39898356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档