![](/img/trans.png)
[英]How to create user specific data when user logs in for the first time in realtime firebase database?
[英]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.