将firebase uid推送到多个位置 - Angularfire2 Ionic 3

时间:2017-10-10 03:34:18

标签: angularjs firebase firebase-realtime-database ionic3 angularfire2

我有以下内容,只需将名称与uid一起推送到数据库中即可。我想将uid同时存放在另一个位置。我怎样才能做到这一点?我使用离子3,angularfire2。

addName() {
      let prompt = this.alertCtrl.create({
        title: 'Name of user',
        message: "Enter a name for this new user",
        inputs: [
          {
            name: 'Name',
            placeholder: 'Username'
          },
        ],
        buttons: [
          {
            text: 'Cancel',
            handler: data => {
              console.log('Cancel clicked');
            }
          },
          {
            text: 'Save',
            handler: data => {
              this.users.push({
                title: data.Name,

              });

              this.posts.push({
                title: data.Name
              });
            }
          }
        ]
      });
      prompt.present();
    } 

提前致谢

1 个答案:

答案 0 :(得分:3)

您的代码未对用户进行身份验证,因此不会涉及UID(用户ID的简称)。

但是,如果您在写入两个位置时希望使用相同的推送ID

handler: data => {
  var key = this.users.push().key;
  this.users.child(key).set({
    title: data.Name,

  });

  this.posts.child(key).set({
    title: data.Name
  });
}

您甚至可以将两个set操作合并为一个更新,但我不确定您的usersposts引用是如何相关的。如果两者都是来自根的直接孩子,那就是:

handler: data => {
  var key = this.users.push().key;
  var updates = {};
  updates["users/"+key+"/title"] = data.Name;
  updates["posts/"+key+"/title"] = data.Name;
  this.ref.update(updates);
}