如何在(angularfire2 / Ionic)中更新firebase数据的嵌套对象,我也想用给定的值更新而不是用key

时间:2018-02-15 17:42:11

标签: firebase ionic-framework firebase-realtime-database ionic3 angularfire2

我将firebase与ionic3 angularjs集成,成功添加数据,如

  var fireData = 
           {
             userid      : '1122233',
             questionId  : '18022',
             answerId    : '25633',
             points      : '2'
          }

//Add

this.sample.list('paperCode').push(fireData);

现在我想更新如下图所示

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您不知道密钥,请首先使用您知道的字段查询数据,然后迭代结果并获取密钥。然后你可以执行更新。

尝试

updateFunction(questionId){
    this.sample.list('/paperCode', ref => ref.orderByChild('questionId').equalTo(questionId)).snapshotChanges()
    .subscribe(actions => {
        actions.forEach(action => {
          // here you get the key
          console.log(action.key);
          this.sample.list('/paperCode').update(action.key, { points: 10 });
        });
    });
}

我希望您的问题ID是唯一的,否则它会覆盖所有查询结果。

答案 1 :(得分:0)

您需要设置该对象的路径并更新您想要的字段。在这个例子中......

firebase.database().ref(1710172911409/L5F4BEuePS8qxUqDNoF/questionId).update("NEWQUESTIONID);

如果您不知道推送对象的唯一ID,则可以查询它。了解详情here