2017-03-07 80 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

由於某種原因它正在工作。一定是一個小故障。謝啦! –