使用特定值更新FirebaseRecyclerAdapter

时间:2017-06-20 17:45:22

标签: android firebase firebase-realtime-database firebaseui

我正在使用FirebaseRecyclerAdapter为我的聊天模块。现在我正在寻找一些解决方案来根据我的firebase数据库中的时间值更新我的FirebaseRecyclerAdapter

我想在FirebaseRecyclerAdapter内仅显示最近24小时的聊天记录。用户可以更新此值(24小时)。

我的聊天中的每条消息都有"createdAt"参数。所以我基于当前时间"createdAt"我们可以过滤FirebaseRecyclerAdapter运行时吗?

我搜索了这个,但是在每个帖子中我都找不到任何解决方案。

1 个答案:

答案 0 :(得分: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) {}
});

希望它有所帮助。