로그인에 signInWithCredential을 사용할 때 Firebase에서 빈 displayName 문제가 발생합니다.
P粉328911308
2023-09-04 09:43:01
<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>
signInWithCredential
获取displayName
的问题。显然,正如之前所说的,displayName
始终为null。但是,如果你使用google_sign_in
库进行登录并检查GoogleSignInAccount
에서 액세스할 수 없는 개체를 "해킹"하는 방법을 찾았습니다. 그러면 해당 표시 이름이 표시됩니다. 그런 다음 이전에 사용한 Google 로그인 자격 증명을 사용하여 Firebase에 로그인할 수 있습니다. 내가 사용하는 코드는 다음과 같습니다.user
变量中,你将拥有来自firebase
身份验证的所有与用户相关的变量,例如uid
,而从googleSignInAccount
에서 표시 이름을 얻을 수 있습니다. 이것이 누군가에게 도움이 되기를 바랍니다!기본적으로
User
的displayName
属性为空。它取决于用户在创建或更新时是否设置了displayName
。但默认情况下它是null
.어딘가에 업데이트하고 싶다면
으아악displayName
,可以使用以下方法:updateProfile
:Google 계정에
displayName
,但在user.displayName
中没有显示出来,那么你需要检查你传递给GoogleAuthProvider.credential()
方法的idToken
是否为null
,确保你也传递了有效的idToken
가 있다고 확신한다면.