大佬教程收集整理的这篇文章主要介绍了如何在 android studio Kotlin Language 中根据选定月份搜索 Firebase Firestore 数据库,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Activitymain.xml 中的 Firestore 数据库访问代码
db.collection("billNo") // I think want to add some code here to get the data!!//
.get()
.addOnsuccessListener {
user.clear()
for (document in it) {
user.add(User(
document.ID,document.data.get("billNo").toString().toInt(),document.data.get("date").toString(),document.data.get("name").toString(),document.data.get("amount").toString().toInt(),document.data.get("payment").toString()
)
)
}
数据库结构
@Parcelize
data class User(
val ID: String,val billNo: Int,val date: String,val name: String,val amount: Int,var payment:string
) : Parcelable
我将 billNo、日期、姓名、金额、paID_or_unpaID 数据添加到 FIREBASE DATABASE 中。因此,当我单击搜索时,我想在 RecyclerVIEw 中获取所选月份的详细信息。所有 RecyclerVIEw 代码和其他东西都工作得很好。只有我想检索所选月份的数据。
当我在以下活动中单击相应的月份和年份时(下面提供了屏幕截图),我想从 FIREBASE FIRE STORE DATA Base 获取相应月份的账单详细信息。我尝试了很多。但我找不到解决方案。我正在使用 KOTliN 编程语言在 AndroID studio 上做我的项目。
Firestore 中没有 LIKE
运算符。所以像这样的查询:
"SELECT * FROM tablename WHERE date LIKE %$month-$year%"
实际上不可能。因为您的“日期”字段实际上是一个字符串,所以在使用小数据集时,您可能会考虑使用:
或者您可以尝试使用在 Google I/O 2021 上宣布的新 Firebase 扩展,名为:
或者直接在代码中:
但是,有两种解决方法可用于实现相同的结果。第一个是在您的用户对象中创建另一个名为“monthYear”的字段。此属性将拥有与“日期”属性不同的值。例如,如果您的“date”属性的值为“03-May-2021”,“monthYear”属性将仅保持“May-2021”的值。话虽如此,查询在 Kotlin 中将如下所示:
val rootRef = FirebaseFirestore.geTinstance()
val queryBymonthYear = rootRef.collection("billNo").whereEqualTo("monthYear","May-2021")
第二种解决方案是将“日期”的类型从字符串更改为时间戳。请参阅下文,了解如何向 Firestore 添加时间戳:
它在 Java 中,但您可以简单地在 Kotlin 中转换它。然后,您可以使用 Query 调用 startAt(startDatE) 和 endAt(endDatE)。
以上是大佬教程为你收集整理的如何在 android studio Kotlin Language 中根据选定月份搜索 Firebase Firestore 数据库全部内容,希望文章能够帮你解决如何在 android studio Kotlin Language 中根据选定月份搜索 Firebase Firestore 数据库所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。