【发布时间】:2020-11-01 10:13:32
【问题描述】:
所以,我试图只获取 24 小时前的文档,我在我的数据库中保存了一个时间戳值作为时间戳
data class Order(@ServerTimestamp val timestamp:Date? = null)
现在,当我查询时,我想带回时间戳大于 24 小时但查询不成功的文档,我已在控制台检查并创建了所有查询
suspend fun getIncompletedOrders(): Resource<List<Order>> {
val reminderList = mutableListOf<Order>()
val oneDay = Date().time + (24 * 60 * 60 * 1000)
val query = FirebaseFirestore.getInstance()
.collection("orders")
.whereEqualTo("uid",FirebaseAuth.getInstance().currentUser?.uid)
.whereIn("status", listOf(1,2,4,5,6))
.whereGreaterThan("timestamp",oneDay)
.get().await()
for(document in query.documents){
reminderList.add(document.toObject(Order::class.java)!!)
}
return Resource.Success(reminderList)
}
正如您在此处看到的,我得到了当前时间,加上 24 小时并检查存储在 Firebase 中的时间戳是否大于该时间,但是当我将时间戳更改为前一天时,我没有收到任何文档Firestore,发生了什么?
【问题讨论】:
-
请显示您希望匹配的文件的屏幕截图。请注意,您没有将日期传递给 whereGreaterThan,因此您永远不会匹配实际的时间戳字段值。一个数字只会与其他数字进行比较。另请注意,您要求的是时间戳大于未来一天的文档。
-
我现在将添加照片@DougStevenson,感谢您的时间
-
这就是文档,所以,如果我将 7 月 11 日到 7 月 10 日的代码移到它应该返回该文档但它不获取它,我做错了什么?
-
请阅读我的全部评论。您正在传递一个数字,但该字段是一个时间戳。他们没有比较。
-
你能详细说明这个问题的答案吗?谢谢,在问之前我一直在搜索
标签: android firebase kotlin google-cloud-firestore