찾다

 >  Q&A  >  본문

로그인에 signInWithCredential을 사용할 때 Firebase에서 빈 displayName 문제가 발생합니다.

<p>Google 로그인을 사용하고 있는데 사용자에게 Google 계정 이메일과 비밀번호를 입력하라는 메시지가 표시됩니다. </p> <pre class="brush:php;toolbar:false;">const auth = getAuth(app); const userCredentials = signInWithCredential(을 기다립니다. 인증, GoogleAuthProvider.credential(null, 토큰) ); console.log(userCredentials.user)</pre> <p><code>email</code>, <code>photoURL</code>, <code>uid</code> 및 기타 정보를 포함한 사용자 개체를 얻었지만 <code> 디스플레이이름</code>이 비어 있습니다. 이것은 버그입니까, 아니면 예상된 결과입니까? 이름과 닉네임을 포함하여 새 Gmail 계정을 만들려고 했지만 <code>displayName</code> <code>displayName</code>을 얻으려면 어떻게 해야 하나요? </p>
P粉328911308P粉328911308455일 전565

모든 응답(2)나는 대답할 것이다

  • P粉794851975

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

    signInWithCredential获取displayName的问题。显然,正如之前所说的,displayName始终为null。但是,如果你使用google_sign_in库进行登录并检查GoogleSignInAccount에서 액세스할 수 없는 개체를 "해킹"하는 방법을 찾았습니다. 그러면 해당 표시 이름이 표시됩니다. 그런 다음 이전에 사용한 Google 로그인 자격 증명을 사용하여 Firebase에 로그인할 수 있습니다. 내가 사용하는 코드는 다음과 같습니다.

    으아악

    user变量中,你将拥有来自firebase身份验证的所有与用户相关的变量,例如uid,而从googleSignInAccount에서 표시 이름을 얻을 수 있습니다. 이것이 누군가에게 도움이 되기를 바랍니다!

    회신하다
    0
  • P粉073857911

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

    기본적으로 UserdisplayName属性为空。它取决于用户在创建或更新时是否设置了displayName。但默认情况下它是null.

    어딘가에 업데이트하고 싶다면 displayName,可以使用以下方法:updateProfile:

    으아악

    Google 계정에 displayName,但在user.displayName中没有显示出来,那么你需要检查你传递给GoogleAuthProvider.credential()方法的idToken是否为null,确保你也传递了有效的idToken가 있다고 확신한다면.

    회신하다
    0
  • 취소회신하다