封闭式火库 - 使用日期类型的字段进行查询

我在执行日期类型(时间戳)的查询时遇到困难。在 cCoud 火库中查询日期字段的正确方法是什么?


    String created_view = editTextDataFilter.getText().toString();

    String time_variable= "";


    try {


        time_variable= new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH).format(new SimpleDateFormat(

                "dd/mm/yyyy", Locale.ENGLISH).parse(created_view));


    }catch (ParseException e){}



db.collection("Students")

            .whereGreaterThan("created_at", time_variable)

            .get()

            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {

                @Override

                public void onComplete(@NonNull Task<QuerySnapshot> task) {

                    if (task.isSuccessful()) {


                        for (QueryDocumentSnapshot document : task.getResult()) {


                            alunosList.add(

                                    new Students(

                                            document.getString("name").toUpperCase(),

                                            document.getString("classroom"),

                                            document.getDate("created_at")));



                            recyclerView.setAdapter(adapter);

                        }

                    }

                    else {

                        Log.w(TAG, "Error getting documents.", task.getException());

                    }

                }

            });



}

字段时间戳

我希望输出将日期大于“time_variable”中输入的值的记录,但目前它找不到值。


慕码人2483693
浏览 82回答 1
1回答

呼啦一阵风

为了能够根据时间戳查询 Firestore 数据库,您需要传递到收集引用,其中“大比”(字段路径字段路径,对象值)方法处理对象。传递字符串(就像您当前所做的那样),它不会使您的查询正常工作。Date它将工作的查询应如下所示:SimpleDateFormat&nbsp;dateFormat&nbsp;=&nbsp;new&nbsp;SimpleDateFormat("yyyy-MM-dd&nbsp;HH:mm:ss");Date&nbsp;date&nbsp;=&nbsp;dateFormat.parse(created_view); db.collection("Students") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.whereGreaterThan("created_at",&nbsp;date) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.get() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addOnCompleteListener(/*&nbsp;...&nbsp;*/);如果您想以编程方式添加时间戳,请从以下代码中看到我的答案:服务器时间戳在火库火库火库上全部为空
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java