将经过Firebase身份验证的用户信息(例如FirstName,LastName,Gender等)存储到我们自己的数据库中

时间:2018-11-12 07:46:32

标签: node.js angular firebase express firebase-authentication

我通过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);
        })
      })
    }

如何始终确保新用户信息存储在我自己的数据库中?

1 个答案:

答案 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?