Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase登录google弹出窗口花费的时间太长,无法加载_Javascript_Firebase_Firebase Authentication - Fatal编程技术网

Javascript Firebase登录google弹出窗口花费的时间太长,无法加载

Javascript Firebase登录google弹出窗口花费的时间太长,无法加载,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,这里是正在发生的事情的预览 使用google popup登录花费的时间太长(>2秒) 这导致了我们网站的跳出率问题 请注意,弹出窗口在urlabout:blank上停留了很长一段时间 以下是一些技术规格 此测试在100mbps光纤连接上运行,并使用@FrankvanPuffelen 这就是我们所做的加速 在index.html中添加本机google登录导入 然后在登录组件中 declare var gapi: any; ngOnInit() { gapi.load('auth2

这里是正在发生的事情的预览

使用google popup登录花费的时间太长(>2秒) 这导致了我们网站的跳出率问题

请注意,弹出窗口在url
about:blank
上停留了很长一段时间

以下是一些技术规格
此测试在100mbps光纤连接上运行,并使用@FrankvanPuffelen 这就是我们所做的加速

在index.html中添加本机google登录导入


然后在登录组件中

declare var gapi: any;


ngOnInit() {
    gapi.load('auth2', function () {
      gapi.auth2.init({
        client_id: "enter-client-id-here"
      });
    });
  }


loginWithGoogle() {
    gapi.auth2.getAuthInstance().signIn().then(googleUser => {
      const credential = firebase.auth.GoogleAuthProvider.credential(
        googleUser.getAuthResponse().id_token);
      firebase.auth().signInWithCredential(credential).catch(function (error) {
        const errorCode = error.code;
        const errorMessage = error.message;
        const email = error.email;
        const errorCred = error.credential;
      });
    }).catch(err => {
      console.log(err);
    });
  }

这是一种变通方法,但仍然无法解决原始问题。

Firebase作为谷歌自己的产品,预计会解决这些类型的问题。

@FrankvanPuffelen 这就是我们所做的加速

在index.html中添加本机google登录导入


然后在登录组件中

declare var gapi: any;


ngOnInit() {
    gapi.load('auth2', function () {
      gapi.auth2.init({
        client_id: "enter-client-id-here"
      });
    });
  }


loginWithGoogle() {
    gapi.auth2.getAuthInstance().signIn().then(googleUser => {
      const credential = firebase.auth.GoogleAuthProvider.credential(
        googleUser.getAuthResponse().id_token);
      firebase.auth().signInWithCredential(credential).catch(function (error) {
        const errorCode = error.code;
        const errorMessage = error.message;
        const email = error.email;
        const errorCred = error.credential;
      });
    }).catch(err => {
      console.log(err);
    });
  }

这是一种变通方法,但仍然无法解决原始问题。


Firebase作为google自己的产品,预计会解决这些类型的问题。

此外,我们正在使用Firebase托管来托管生产中的站点。代码看起来不错,因此这不太可能是导致您速度缓慢的原因。事实上,我不知道有什么方法可以在应用程序的代码中控制这种性能。最好是把一个bug发布到这个系统上,尽管我也建议你深入研究SDK在你考虑太久的时候所做的事情。如果您能展示如何实现这一点的代码,这将为其他试图改进的人提供一个很好的答案。此外,我们正在使用firebase托管来托管生产中的站点。代码看起来不错,因此这不太可能是您体验到的缓慢的原因。事实上,我不知道有什么方法可以在应用程序的代码中控制这种性能。最好是把一个bug发布到这个系统上,尽管我也建议你深入研究SDK在你考虑太久的时候所做的事情。如果您能展示如何实现这一点的代码,它将为其他试图改进的人提供一个很好的答案。