0

signInWithPopup()の代わりにsignInWithCredential()をどうすれば使用できますか? signInWithPopupが携帯電話のGoogle Chromeのブラウザで動作していないため、私は周りを調べて、それが既知の問題であり、代わりにsignInWithCredential()を使用していることを発見しました。しかし、私はそれを動作させることができないようだ、私の現在のコードsignInWithPopup()を使用して、次のとおりです。どんな種類の魂が私を助けることができますか? signInWithCredentialを使用するには感謝Googleがfirebaseでサインインします

login() { 
    return new Promise((resolve) => { 
     this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider()).then(() => { 
     this.afAuth.authState.take(1).subscribe(async (authState) => { 
      resolve(authState); 
     }); 
     }); 
    }); 
    } 
+0

この既知の問題は何を指していますか? – bojeil

答えて

0

は、あなたがOAuthのIDトークン/アクセストークンとAuthCredentialを初期化する必要があります。たとえば :

const cred = firebase.auth.GoogleAuthProvider.credential(googleIdToken, googleAccessToken); 
firebase.auth().signInAndRetrieveDataWithCredential(cred) 
    .then(userCredential => { 
    // Success. 
    }) 
    .catch(error => { 
    // error occurred. 
    }); 

は、Google IDトークンを取得するには、ライブラリにGoogleの記号を使用することができます。https://developers.google.com/identity/sign-in/web/sign-in

これが唯一のブラウザで動作します。他のブラウザ以外の環境でこれを使用している場合は、対応するOAuth資格情報を取得するためにサードパーティ製のOAuthライブラリが必要になります。

関連する問題