【问题标题】:Storing firebase authenticated user info (such as FirstName, LastName, Gender and etc.) to our own database将经过 Firebase 身份验证的用户信息(例如 FirstName、LastName、Gender 等)存储到我们自己的数据库中
【发布时间】:2019-04-14 21:57:45
【问题描述】:

我通过firebase身份验证使用用户注册和登录,用户注册/登录的那一刻,我想在我的数据库中存储其他用户信息(如FirstName,LastName,Gender等)。

这是我正在做的事情,但是当存储新用户信息的 rest 调用失败时会发生什么。他第二次登录时不是新用户

  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);
        })
      })
    }

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

【问题讨论】:

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


【解决方案1】:

我不知道 angular,但我认为您需要使用用户 uid 作为 firebase 数据库中的键。我认为这个 uid 是在用户首次登录您的应用程序时生成的,并且在您的应用程序的整个生命周期中都会保留。因此,当用户登录时,您可以获得 uid,并检查 Firebase DB,如果有是带有uid的条目。如果不是,则表示您有一个新用户,您应该在数据库中创建一个条目。

更多细节在这里:https://firebase.google.com/docs/auth/web/manage-users

如果你想看看如何找到 UID:Is there any way to get Firebase Auth User UID?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多