2017-03-07 79 views
0

我已经做了一个反应组件,它记录了每次喂我的猫。但目前它不会自动为每一天创建一个新的空日志。我试图添加一个方法来在每天午夜创建一个新条目,但为了使它与我创建的现有组件一起工作,每个新条目都需要以'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')) 
    } 
} 

我也试过this.dbroot.set()但这不起作用,因为它需要childref先存在。

更新:我刚刚尝试了以下技术上的工作,但它也覆盖了整个参考,而不是仅仅添加一个新的日期参考。

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 : {} 
    }) 
    } 
} 

有什么建议吗?

回答

1

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

如果要确定一个新的子自己的名字,叫child()

var date = moment().format('DD-MM-YYYY'); 
this.dbroot.child(date).child('date').set(date) 
+0

谢谢,弗兰克。我刚刚尝试过,但没有添加新的子节点,它覆盖了所有这些节点,并将其替换为新节点! –

+0

由于某种原因它正在工作。一定是一个小故障。谢啦! –