我通过Firebase身份验证使用用户注册和登录,在用户注册/登录的那一刻,我想在数据库中存储其他用户信息(例如FirstName,LastName,Gender等)。
这是我要做的,但是当存储新用户信息的调用失败时会发生什么。第二次登录时,他不是新用户
loginWithFacebook() {
const provider = new firebase.auth.FacebookAuthProvider();
provider.addScope('user_birthday');
provider.addScope('user_friends');
provider.addScope('user_gender');
return new Promise<any>((resolve, reject) => {
this.afAuth.auth
.signInWithPopup(provider) // a call made to sign up via fb
.then(res => {
if (res) {
resolve(res);
if (res.additionalUserInfo.isNewUser) { // creatin profile only if he is a new user
this.createProfile(res); // a call to store the response in the db
}
this.setTokenSession(res.credential.accessToken);
}
}, err => {
console.log(err);
reject(err);
})
})
}
如何始终确保新用户信息存储在我自己的数据库中?
答案 0 :(得分:0)
我不知道角度,但是我认为您需要使用用户uid作为Firebase数据库中的键。我认为,这个uid是在用户首次登录到您的应用程序时生成的,并在您的应用程序的整个生命周期中都被保留。因此,当用户登录时,您可以获取该uid,并检查Firebase数据库(如果存在)是带有uid的条目。如果没有,则表示您有一个新用户,您应该在数据库中创建一个条目。
此处有更多详细信息:https://firebase.google.com/docs/auth/web/manage-users。
如果您想了解如何查找UID:Is there any way to get Firebase Auth User UID?