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