使用Firebase数据库

时间:2017-07-22 23:42:22

标签: angular typescript firebase angularfire2

我使用Firebase作为Auth方法和数据库在我的应用中创建了一个注册组件。当我注册一个新用户时,会生成一个密钥,然后在我的数据库中保存所有用户信息,包括来自身份验证的UID。 我想要做的是使用身份验证中的UID作为我的主键,而不是Firebase生成的密钥。

这是我的代码:

component.ts

  signupUser(user: User) {
    this.firebaseAuth.auth
      .createUserWithEmailAndPassword(user.email, user.password)
      .then(value => {
        console.log('Success!', value);
        this.afdb.list('users').push({
          firstname: user.firstname,
          lastname: user.lastname,
          email: user.email,
          uid: value.uid
        });
      })
      .catch(err => {
        console.log('Something went wrong:',err.message);
      });
  }

在Firebase中的json

users {
    -KpgNYJ0adjVyOGJiyBF {
        email: test@test.com
        firstname: dasdsa
        lastname: dsadsads
        uid: 021oxk8X6rQL6gAfC0UhZpB4vZx2
        }
    }

我想要什么

users {
    021oxk8X6rQL6gAfC0UhZpB4vZx2 {
        email: test@test.com
        firstname: dasdsa
        lastname: dsadsads
        }
    }

您的帮助一如既往地深受赞赏。感谢。

编辑: 我忘了告诉我使用AngularFire2。

1 个答案:

答案 0 :(得分:1)

使用clientMutationId代替updatepush为该节点创建一个新节点和一个唯一键。虽然push更新指定的节点,但如果它尚未存在则创建它。

update