2017-06-20 74 views
0

我正在爲我的聊天模塊使用FirebaseRecyclerAdapter。現在我正在尋找一些解決方案,根據我的firebase數據庫中的時間值更新我的FirebaseRecyclerAdapter更新具有特定值的FirebaseRecyclerAdapter

我只想顯示FirebaseRecyclerAdapter中最後24小時的聊天內容。用戶可以更新此值(24小時)。

我有"createdAt"參數與我聊天裏面的每條消息。所以我基於當前時間和"createdAt"我們可以過濾FirebaseRecyclerAdapter運行時間嗎?

我搜索了這個,但在每篇文章中,我沒有找到任何解決方案。

回答

0

假設您將日期和時間保存爲TIMESTAMP,請參閱我在此post的回答。

唯一的區別是,你需要與24小時comapare。使用數據結構,您可以輕鬆構建一個查詢,只返回不超過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

嗨@Alex謝謝你的回覆。但我沒有時間戳的問題。但我無法隱藏FirebaseRecyclerAdapter中的特定記錄。 –

+0

這是一樣的原則。您需要將數據庫中的數據('createdAt'字段的值)與執行檢查時的數據進行比較。如果差異<24h,則顯示其他消息,不顯示消息。 –

+0

好吧,您的意思是我們會在將特定記錄發送到FirebaseRecyclerAdapter之前排除特定記錄? –