2017-03-07 3 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を試してみた:私は次の操作を実行しようとするたびに、firebaseは私の日付形式を無視し、代わりにランダムキーを置きますしかし、それはchildrefが最初に存在する必要があるので、うまくいきません。

アップデート:私はちょうど技術的に働いていた次のことを試してみましたが、それはまた、全体の参照を上書きだけではなく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 : {} 
    }) 
    } 
} 

答えて

1

あなたがpush()を呼び出すと、Firebaseが自動生成されたプッシュIDを持つ新しい場所にデータを書き込みます。

新しい子の名前を自分で決定したい場合は、child()を呼び出す:

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

おかげで、フランク。私はちょうどそれを試みたが、それは新しい子ノードを追加していない、それはそれらのすべてを上書きし、ちょうど新しいもので置き換える! –

+0

これは何らかの理由で現在動作しています。すみませんでした。ありがとう! –

関連する問題