代码之家  ›  专栏  ›  技术社区  ›  Karty

将firebase认证的用户信息(如FirstName、LastName、Gender等)存储到我们自己的数据库中

  •  0
  • Karty  · 技术社区  · 6 年前

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

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Teshte    6 年前

    我不知道angular,但我认为您需要使用用户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?