Javascript Firebase:创建命名子引用

Javascript Firebase:创建命名子引用,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我制作了一个react组件,每次喂猫时都会记录下来。然而,目前它不会自动为每天创建一个新的空日志。我正在尝试添加一个方法,以便在每天午夜创建一个新条目,但为了使其与我创建的现有组件一起工作,每个新条目都需要以“DD-MM-YYYY”格式命名。虽然我可以对组件进行返工以避免使用该组件,但当我进入firebase查看日志创建日期时,一眼就能看到它,而且我更愿意不更改它 因此,我的问题是:每当我尝试执行以下操作时,firebase都会忽略我的日期格式,而将一个随机键放入其中: this.midnigh

我制作了一个react组件,每次喂猫时都会记录下来。然而,目前它不会自动为每天创建一个新的空日志。我正在尝试添加一个方法,以便在每天午夜创建一个新条目,但为了使其与我创建的现有组件一起工作,每个新条目都需要以“DD-MM-YYYY”格式命名。虽然我可以对组件进行返工以避免使用该组件,但当我进入firebase查看日志创建日期时,一眼就能看到它,而且我更愿意不更改它

因此,我的问题是:每当我尝试执行以下操作时,firebase都会忽略我的日期格式,而将一个随机键放入其中:

this.midnightCheck = () => {
   // If it is midnight, update the state
   if(moment().format('HH:mm') === '00:00') {
     this.dbroot.push(moment().format('DD-MM-YYYY')).child('date').set(moment().format('DD-MM-YYYY'))
   }
}
我也尝试过这个.dbroot.set(),但它不起作用,因为它需要先存在childref

更新:我刚刚尝试了以下技术上可行的方法,但它也重写了整个ref,而不是仅仅在ref中添加一个新的日期

this.midnightCheck = () => {
  // If it is midnight, update the state
  if(moment().format('HH:mm') === '18:34') {
    console.info('midnightCheck is updating the state')
    this.dbroot.child(moment().format('DD-MM-YYYY')).set({
      date : moment().format('DD-MM-YYYY'),
      logs : {}
    })
  }
}
有什么建议吗?

当您调用
push()
时,Firebase会使用自动生成的推送ID将数据写入新位置

如果您想自己确定新孩子的名字,请调用
child()


谢谢你,弗兰克。我刚刚尝试过,但它没有添加新的子节点,而是覆盖所有子节点,并用新节点替换它!出于某种原因,它现在起作用了。一定是出了故障。谢谢你,伙计!
var date = moment().format('DD-MM-YYYY');
this.dbroot.child(date).child('date').set(date)