Autenticação do Google no firebase mostrando a tela em branco Progressive Web App

Estou a caminho de criar meu primeiro aplicativo da web Progressivo, que usa o firebase para armazenar dados. Eu também estou usandoGmail como um ponto de entrada para todos os usuários que usariam o aplicativo. No entanto, estou preso na implementação do login. Abaixo está o meu código para fazer login:

html:

<button md-raised-button color="warn" (click)="logInGoogle()"><md-icon>group</md-icon>Sign in with google to enjoy the app</button> 

ts:

logInGoogle(){
    this.authService.loginWithGoogle().then( user => {
      console.log("User is logged in");
      //this.router.navigate(['/addweather']);
    })
    .catch( err => {
      console.log('some error occured');
    })
  }

Aqui está o serviço:

loginWithGoogle() {
    return this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider());
  }

Também para verificar oauth estado que tenho isso no meuapp.component.ts construtor:

this.authService.afAuth.authState.subscribe(
      (auth) => {
        if(auth === null){
          console.log("Not Logged in.");
          this.router.navigate(['login']);
          this.isLoggedIn = false;
        }
        else {
          console.log("Successfully Logged in.");
          this.isLoggedIn = true;
          this.router.navigate(['']);
        }
      }
    )

Agora, existem alguns comportamentos que o aplicativo está mostrando:

Essa funcionalidade de login funciona bem nos navegadores, pois se eu clicar no botão de login, ela abre uma nova janela, me autoriza e volta para a mesma guia na qual o aplicativo é aberto.

Quando adiciono o aplicativo à tela inicial e tento fazer login novamente, ele solicita as opções abaixo:

Depois de clicar no chrome, ele me autoriza e me redireciona para o aplicativo, mas o aplicativo mostra uma tela em branco agora e a tela oAuth continua em um estado de processamento infinito.Por que isso está acontecendo? Quero dizer, não deveria funcionar da maneira normal, como funcionava quando o aplicativo era executado no navegador.

Também ao clicar no botão de login, não deve solicitar a opção, como mostrado na imagem acima; em vez disso, deve abrir uma caixa de diálogo oAuth. Eu tentei fazer isso também com o seguinte código:

logInGoogle(){
    var newWindow = window.open('https://accounts.google.com/o/oauth2/auth?scope=https://www.google.com/m8/feeds&client_id=9722-j3fstr5sh6pumie.apps.googleusercontent.com&redirect_uri=https://weatherapp321.firebaseapp.com/__/auth/handler&response_type=token', 'name', 'height=600,width=450');

  }

Isso agora, em vez de solicitar as opções, abre uma caixa de diálogo desejada. Mas depois da autorização, isso me leva de volta à página de login.Por que isso está acontecendo? quando eu já estou verificando o estado de autenticação emapp.component.ts e redirecionar o usuário para a página inicial, se o usuário for autorizado.

Obrigado por ser paciente e ler até o fim. Ajuda seria muito apreciada.

Editar

Como sugerido por Yevgen: Tentei comsignInWithRedirect. Funcionou quando entrei pela primeira vez com um pequeno atraso de 2 segundos. Mas depois que eu saí e tentei entrar novamente, eu recebo uma tela em branco depois de fazer login.

questionAnswers(3)

yourAnswerToTheQuestion