最近追加された子ノードは、データベースの最後の子ノードではなく、プッシュする時点でfirebaseデータベースから取得したいと考えています。firebase child_addedイベントの問題
問題は、典型的なchild_added
イベントは、最初にページを読み込んでも最後の子を取得するということです。
この時点で新しいノードが追加されていない場合でも、このコードは最後の子を出力します。
firebase.database().ref("coupons").limitToLast(1).on('child_added', function(snapshot) {
console.log(snapshot.val());
});
この「ハック」は現在私のために働いていますが、適切な方法で書き直す方法はありますか?
firebase.database().ref().on('child_changed', function() { // listen only when there are some changes in entire db, the key solution for this purpose.
firebase.database().ref("coupons").limitToLast(1).on('child_added', function(snapshot) {
console.log(snapshot.val());
});
});
この時点では何も新しいノードが追加されなかったのであれば、なぜちょうどchild_added
リスナーが動作しますか?
これは[documentation](https://firebase.google.com/docs/reference/js/firebase.database.Reference#on)によると予想される動作です。「このイベントは最初の子供この場所で*、新しい子供が追加されるたびに再度トリガーされます... " –
だから、私の"ハック "は合法ですか? :) –
いいえ、この "ハック"は盗聴されています:( –