当用户使用带有firebase的社交媒体登录时如何获得第一个名字?

时间:2017-09-20 05:39:44

标签: javascript firebase firebase-authentication

以下是我用来获取用户使用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>,显示用户的全名。

如何只显示用户的名字?

2 个答案:

答案 0 :(得分:4)

你可以这样做;

Category | Type | price
---------|------|-----
X        | A    | 100 
X        | B    | 120
X        | C    | 150
---------|------|----
Y        | A    | 200 
Y        | B    | 220
Y        | C    | 250
---------|------|----
Z        | A    | 300 
Z        | B    | 320
Z        | C    | 350

答案 1 :(得分: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;
  });