【问题标题】:update firebase data after doing calculations计算后更新 Firebase 数据
【发布时间】:2017-07-05 19:43:24
【问题描述】:

我使用 Firebase 作为 Ionic 2 应用程序的数据库。

我写了以下方法,将所有子节点中的所有年龄字段更新为值 7(用于测试目的):

  multiupdate(){
  var pc;

  this.memberProfileref.child('/members/').once('value',(snapshot)=> {

      snapshot.forEach(child=> {

          this.setAge(child.key);     // Will update all the age fields to 7 (works well)

          return false;
      });   
   });
}

setAge(UserId){
    this.memberProfile.child(UserId).update({
       age:7
    });
}

上面的代码运行良好。

想要更新年龄值,我现在需要进行计算,然后进行更新。

我需要从 Firebase 获取 duedate,使用以下方法并根据今天计算持续时间:

setduration(lastday){
   var today= moment().format('L');
      var durationd = moment(lastday).diff(moment(today));
      var dd=moment.duration(durationd).as('days');
     console.log(dd);
}

但是当我调用该方法时 [就像我对 setAgemethod() 所做的那样],它无法获得结果。如何修改代码来解决这个问题?

【问题讨论】:

  • 您的问题不清楚。你把什么传递给setduration?是duedate吗?你在conlose.log(dd) 的输出中看到了什么?另外,我会使用moment().valueOf() 来比较两个时间戳。
  • @Ari 7 感谢您的回复。是的,我需要一个一个地遍历所有 chidnodes 并获取 duedate ,然后将其传递给方法 setduration( ) 并获取持续时间。之后,在 firebase 中更新字段 duration.

标签: javascript angular firebase firebase-realtime-database ionic2


【解决方案1】:

我相信您希望通过考虑数据库中已经可用的到期日来发出每个节点的持续时间。检查下面的代码,看看我是如何调用你的方法的。

 multiupdate(){
      var pc;

      this.memberProfileref.child('/members/').once('value',(snapshot)=> {

          snapshot.forEach(child=> {

              this.setAge(child.key); // Will update all the age fields to 7 (works well)
              this.setduration(child.val().duedate); //<-- call your method like this

              return false;
          });   
       });
    }

    setAge(UserId){
        this.memberProfile.child(UserId).update({
           age:7
        });
    }

    setduration(lastday){
       var today= moment().format('L');
          var durationd = moment(lastday).diff(moment(today));
          var dd=moment.duration(durationd).as('days');
         console.log(dd);
    }

【讨论】:

  • 这正是我所需要的。现在它工作正常。谢谢。
猜你喜欢
  • 1970-01-01
  • 2016-12-11
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
相关资源
最近更新 更多