2017-06-20 7 views
0

私はチャットモジュールのためにFirebaseRecyclerAdapterと働いています。今度はfirebaseデータベースの時刻値に基づいて私のFirebaseRecyclerAdapterを更新するいくつかのソリューションを探しています。特定の値を持つFirebaseRecyclerAdapter

最後の24時間のチャットをFirebaseRecyclerAdapterに表示したいユーザーはこの値を更新できます(24時間)。

チャット内のすべてのメッセージに"createdAt"というパラメータがあります。だから私は現在の時間と"createdAt"FirebaseRecyclerAdapterランタイムをフィルタできますか?

私はこれを検索しましたが、すべての投稿では解決策が見つかりませんでした。

答えて

0

日付と時刻をTIMESTAMPとして保存するとしたら、postから私の答えをご覧ください。

唯一の違いは、24時間以内にお悩みください。データ構造を使用すると、30日以上経過していないアイテムのみを返し、表示するクエリを簡単に作成できます。このコードを使用してください:

long display = new Date().getTime() - TimeUnit.MILLISECONDS.convert(30, TimeUnit.DAYS); 
Query messagesQuery = yourRef.orderByChild("timestamp").endAt(display); 
messagesQuery.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot snapshot) { 
     for (DataSnapshot messageSnapshot: snapshot.getChildren()) { 
      Log("TAG", messageSnapshot.getRef().getValue(String.class)); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}); 

希望します。

+0

お返事ありがとうございました。しかし、私はタイムスタンプで問題を抱えていません。しかし、私はFirebaseRecyclerAdapterの特定のレコードを隠すことができません。 –

+0

同じ原理です。チェックを実行するときに、データベースのデータ( 'createdAt'フィールドの値)とデータを比較する必要があります。差が<24h未満の場合は、メッセージを表示し、メッセージは表示しないでください。 –

+0

あなたはFirebaseRecyclerAdapterに送信する前に特定のレコードを除外することを意味しますか? –

関連する問題