簡體   English   中英

當用戶使用帶有 firebase 的社交媒體登錄時,如何只獲取名字?

[英]How to get just the first name when a user logs in using social media with firebase?

這是我用來獲取用戶在使用 google、facebook 或 twitter 登錄時的詳細信息的代碼。

firebase.auth().onAuthStateChanged(function(user) {
    if (user) {
        // User is signed in.
        var displayName = user.displayName;
        var email = user.email;
        var emailVerified = user.emailVerified;
        var photoURL = user.photoURL;
        var uid = user.uid;
        var phoneNumber = user.phoneNumber;
        var providerData = user.providerData;
        user.getToken().then(function(accessToken) {

            console.debug('user', user);

            document.getElementById('name').textContent = displayName;
            document.getElementById("avatar").src = photoURL;


        });

    } else {
        console.log('not logged in');

    }

});

然后在 html 中通過寫入<p id="name"></p>顯示用戶的全名。

如何只顯示用戶的名字?

你可以這樣做;

document.getElementById('name').textContent = (displayName.split(' '))[0];

登錄后,大多數社交提供商都可以使用名字和姓氏,但您需要將它們保存到數據庫中,而 Firebase 則不需要。 不過,每個提供商的名字和姓氏各不相同。

https://firebase.google.com/docs/reference/js/firebase.auth.Auth#signinwithpopup 上的文檔

 firebase.auth .signInWithPopup(new firebase.auth.GoogleAuthProvider()) .then((user) => { const firstName = user.additionalUserInfo.profile.given_name; const lastName = user.additionalUserInfo.profile.family_name; }); firebase.auth .signInWithPopup(new firebase.auth.OAuthProvider('microsoft.com')) .then((user) => { const firstName = user.additionalUserInfo.profile.givenName; const lastName = user.additionalUserInfo.profile.surname; });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM