2017-08-19 4 views
0

私はこのコードを持っている:古いアイテムと新しいアイテムをファイアベースで区別する方法は?

firebase.initializeApp(config); 
var database = firebase.database(); 
var messages = database.ref('messages'); 
messages.limitToLast(100).on('child_added', function(snapshot) { 
    var data = snapshot.val(); 
    if (data.random != random_value) { 
     show(data.message); 
    } 
}); 

をして、新しいメッセージがINITにも追加されたときにそれが実行されます。新しいメッセージと古いメッセージを区別するにはどうすればよいですか?

+1

あなたに "古い"と "新しい"を定義することがわかっていることは、解決策を考え出す重要な鍵です。ここではいくつかの以前の議論があります:[1](https://stackoverflow.com/q/18270995)、[2](https://stackoverflow.com/q/19114134)、[3](https:// stackoverflow.com/a/27693310)、[4](https://stackoverflow.com/a/12851236)。 –

+1

@FrankvanPuffelenありがとう、私はこの問題に私のために解決する最初のものの複製としてマークしました。 – jcubic

答えて

1

child_addedの場合、常にすべてというメッセージが返されます。最初の実行時には、すでにデータベースにあるものがすべて返されます。その後、前になかったものが追加されたときにトリガーされます。

メッセージ新しいメッセージが必要な場合は、単にメッセージをデータベースに読み込んでマークする必要があります。

関連する問題