Isu dengan displayName kosong dalam Firebase apabila log masuk menggunakan signInWithCredential
P粉328911308
2023-09-04 09:43:01
<p>Saya menggunakan Log Masuk Google dan pengguna digesa untuk memasukkan e-mel dan kata laluan akaun Google mereka: </p>
<pre class="brush:php;toolbar:false;">const auth = getAuth(app);
const userCredentials = tunggu signInWithCredential(
kebenaran,
GoogleAuthProvider.credential(null, token)
);
console.log(userCredentials.user)</pre>
<p>Saya berjaya memperoleh objek pengguna, termasuk <kod>e-mel</kod>, <kod>photoURL</kod>, <kod>uid</kod> displayName</code> Adakah ini pepijat atau hasil yang dijangkakan? Saya cuba membuat akaun Gmail baharu, termasuk nama dan nama panggilan, tetapi <kod>displayName</code> Bagaimanakah saya boleh mendapatkan <code>displayName</code>? </p>
Saya menemui cara untuk "menggodam" objek yang tidak boleh diakses daripada
signInWithCredential
获取displayName
的问题。显然,正如之前所说的,displayName
始终为null。但是,如果你使用google_sign_in
库进行登录并检查GoogleSignInAccount
dan anda akan melihat bahawa anda akan mempunyai nama paparan itu. Anda kemudian boleh log masuk ke Firebase menggunakan bukti kelayakan log masuk Google yang anda gunakan sebelum ini. Inilah kod yang saya gunakan:Dalam
user
变量中,你将拥有来自firebase
身份验证的所有与用户相关的变量,例如uid
,而从googleSignInAccount
anda boleh mendapatkan nama paparan. Harap ini membantu seseorang!Secara lalai,
User
的displayName
属性为空。它取决于用户在创建或更新时是否设置了displayName
。但默认情况下它是null
.Jika anda ingin mengemas kini di suatu tempat
displayName
,可以使用以下方法:updateProfile
:Jika anda pasti anda mempunyai
displayName
,但在user.displayName
中没有显示出来,那么你需要检查你传递给GoogleAuthProvider.credential()
方法的idToken
是否为null
,确保你也传递了有效的idToken
dalam akaun Google anda.