繁体   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