Java 运行firebase query onClick并使用结果更新RecyclerView
我试图在我的firebase数据库上运行一个查询,以便只返回那些时间戳=日期选择器中指定的日期的结果(请参见应用程序的图片),我希望每次按下查看记录按钮时都运行此查询 [![Firebase][3]][3] 我目前能够将所有对象打印到recycler视图中,但是当尝试运行我的查询时,它不会产生任何结果,调试中没有错误和错误 如果我需要提供更多的细节,请让我知道Java 运行firebase query onClick并使用结果更新RecyclerView,java,android,firebase,android-recyclerview,Java,Android,Firebase,Android Recyclerview,我试图在我的firebase数据库上运行一个查询,以便只返回那些时间戳=日期选择器中指定的日期的结果(请参见应用程序的图片),我希望每次按下查看记录按钮时都运行此查询 [![Firebase][3]][3] 我目前能够将所有对象打印到recycler视图中,但是当尝试运行我的查询时,它不会产生任何结果,调试中没有错误和错误 如果我需要提供更多的细节,请让我知道 [3] :要解决此问题,请更改以下代码行: options = new FirebaseRecyclerOptions.Builde
[3] :要解决此问题,请更改以下代码行:
options = new FirebaseRecyclerOptions.Builder<Records>().setQuery(databaseReference, Records.class).build();
options=new FirebaseRecyclerOptions.Builder().setQuery(databaseReference,Records.class).build();
到
options=new FirebaseRecyclerOptions.Builder().setQuery(query,Records.class).build();
// ^ ^
您必须将query
对象和not对象传递给setQuery()
方法,因为查询对象实际上过滤了您的数据
编辑:
根据你的评论:
是的,它在硬编码时工作,但在将文本视图设置为字符串时不工作
这意味着传递查询对象确实有效,但问题仍然在于如何将数据转换为字符串。要解决此问题,请确保
日期的字符串表示形式为:04-02-2017
,您的问题将得到解决。此行数据库引用中日期的值是多少。orderByChild(“timestamp”)。equalTo(date)
?日期是转换为字符串的文本框的值,字符串日期=mDisplayDate.getText().toString().trim();在发布toast消息时,字符串显示为04-02-2019(或设置为任何日期),它是什么样子的?请提供该日期的字符串表示形式。“04-02-2017”或任何带有日期选择器的日期添加了当前显示方式的图像(toast消息显示日期值)仍然没有乐趣,我相信这是我如何创建字符串日期的问题,如果我手动将查询更改为query query=databaseReference.orderByChild(“timestamp”).equalTo(“04-02-2019”);它工作正常,但随后被卡在该日期。当您像下面这样硬编码日期时,它工作吗?databaseReference.orderByChild(“时间戳”).equalTo(“04-02-2017”)
?硬编码时它工作,但将文本视图设置为字符串时它不工作
options = new FirebaseRecyclerOptions.Builder<Records>().setQuery(query, Records.class).build();
// ^ ^