Problème avec displayName vide dans Firebase lors de la connexion à l'aide de signInWithCredential
P粉328911308
2023-09-04 09:43:01
<p>J'utilise Google Login et l'utilisateur est invité à saisir l'adresse e-mail et le mot de passe de son compte Google : </p>
<pre class="brush:php;toolbar:false;">const auth = getAuth(app);
const userCredentials = attendre signInWithCredential (
authentification,
GoogleAuthProvider.credential (null, jeton)
);
console.log(userCredentials.user)</pre>
<p>J'ai réussi à obtenir l'objet utilisateur, y compris <code>email</code>, <code>photoURL</code>, <code>uid</code> et d'autres informations, mais <code> displayName</code> est vide. Est-ce un bug ou un résultat attendu ? J'ai essayé de créer un nouveau compte Gmail, y compris le nom et le pseudo, mais <code>displayName</code> Comment puis-je obtenir <code>displayName</code> ? </p>
J'ai trouvé un moyen de "pirater" l'objet inaccessible depuis
signInWithCredential
获取displayName
的问题。显然,正如之前所说的,displayName
始终为null。但是,如果你使用google_sign_in
库进行登录并检查GoogleSignInAccount
et vous verrez que vous aurez ce nom d'affichage. Vous pouvez ensuite vous connecter à Firebase en utilisant les identifiants de connexion Google que vous avez utilisés précédemment. Voici le code que j'utilise :Dans
user
变量中,你将拥有来自firebase
身份验证的所有与用户相关的变量,例如uid
,而从googleSignInAccount
, vous pouvez obtenir le nom d'affichage. J'espère que cela aide quelqu'un !Par défaut,
User
的displayName
属性为空。它取决于用户在创建或更新时是否设置了displayName
。但默认情况下它是null
.Si vous souhaitez mettre à jour quelque part
displayName
,可以使用以下方法:updateProfile
:Si vous êtes sûr d'avoir
displayName
,但在user.displayName
中没有显示出来,那么你需要检查你传递给GoogleAuthProvider.credential()
方法的idToken
是否为null
,确保你也传递了有效的idToken
dans votre compte Google.