ホームページ  >  に質問  >  本文

SignInWithCredential を使用してログインするときに Firebase で空の displayName が表示される問題

<p>Google ログインを使用しているのですが、ユーザーは Google アカウントのメールアドレスとパスワードの入力を求められます: </p> <pre class="brush:php;toolbar:false;">const auth = getAuth(app); const userCredentials = awaitsignInWithCredential( 認証、 GoogleAuthProvider.credential(null, トークン) ); console.log(userCredentials.user)</pre> <p><code>email</code>、<code>photoURL</code>、<code>uid</code>、その他の情報を含むユーザー オブジェクトを正常に取得しましたが、<code> displayName</code> が空です。これはバグですか、それとも予期された結果ですか?名前とニックネームを含めて新しい Gmail アカウントを作成しようとしましたが、<code>displayName</code> は空のままでした。 <code>displayName</code> を取得するにはどうすればよいですか? </p>
P粉328911308P粉328911308432日前548

全員に返信(2)返信します

  • P粉794851975

    P粉7948519752023-09-05 00:52:04

    signInWithCredential から displayName を取得できない問題を「ハッキング」する方法を見つけました。明らかに、前に述べたように、displayName は常に null です。ただし、google_sign_in ライブラリを使用してサインインし、GoogleSignInAccount オブジェクトを検査すると、その表示名が設定されていることがわかります。その後、以前に使用した Google ログイン認証情報を使用して Firebase にログインできます。 私が使用するコードは次のとおりです: リーリー

    user 変数には、uid などの firebase 認証と googleSignInAccount In からのすべてのユーザー関連変数が含まれます。表示名を取得します。 これが誰かの役に立てば幸いです!

    返事
    0
  • P粉073857911

    P粉0738579112023-09-05 00:03:58

    デフォルトでは、UserdisplayName 属性は空です。これは、ユーザーが作成時または更新時に displayName を設定したかどうかによって異なります。ただし、デフォルトでは null です。

    どこかで displayName を更新したい場合は、次のメソッドを使用できます: updateProfile:

    リーリー

    Google アカウントに displayName があることは確かだが、それが user.displayName に表示されない場合は、## に渡したものを確認する必要があります。 #GoogleAuthProvider.credential( ) メソッド nullidToken は、有効な idToken も渡していることを確認してください。

    返事
    0
  • キャンセル返事