以下是我用来获取用户使用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>
,显示用户的全名。
如何只显示用户的名字?
答案 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;
});