Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用特定值更新FirebaseRecyclerAdapter_Android_Firebase_Firebase Realtime Database_Firebaseui - Fatal编程技术网

Android 使用特定值更新FirebaseRecyclerAdapter

Android 使用特定值更新FirebaseRecyclerAdapter,android,firebase,firebase-realtime-database,firebaseui,Android,Firebase,Firebase Realtime Database,Firebaseui,我正在为我的聊天模块使用FirebaseRecyclerAdapter。现在,我正在寻找一些解决方案,根据firebase数据库中的时间值更新我的FirebaseRecyclerAdapter 我只想显示FirebaseRecyclerAdapter中最近24小时的聊天记录。用户可以更新此值(24小时) 我有“createdAt”参数和聊天室中的每条消息。因此,我基于当前时间和“createdAt”是否可以筛选FirebaseRecyclerAdapter运行时 我搜索了这个,但在每一篇文章中我

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

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

我有
“createdAt”
参数和聊天室中的每条消息。因此,我基于当前时间和
“createdAt”
是否可以筛选
FirebaseRecyclerAdapter
运行时


我搜索了这个,但在每一篇文章中我都没有找到任何解决方案

假设您将日期和时间保存为
时间戳
,请查看我的答案

唯一的区别是你需要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) {}
});

希望有帮助。

Hey@Alex谢谢你的回复。但我没有时间戳的问题。但我无法在FirebaseRecyclerAdapter中隐藏特定记录。这是相同的原则。执行检查时,需要将数据库中的数据(创建数据字段的值)与数据进行比较。如果差异是确定的,您的意思是在发送到FirebaseRecyclerAdapter之前,我们将排除特定记录?是的,这是正确的。您将只显示与您的条件相关的消息。易卜拉欣·阿里所说的是不正确的。如果使用
limitToLast(3)
方法,则不知道这3条消息是否在24小时内。同样,你也不知道起点和终点。这就是为什么您需要首先验证并只显示那些在24小时内添加的消息。@AlexMamo他可以使用
ServerValue.TIMESTAMP
stamp来确定,我只是举个例子。