【发布时间】:2020-08-28 16:50:26
【问题描述】:
我有这样的 Firestore 数据库结构。在这个应用程序中,我能够向客户显示 Lynda 的所有时间段。
客户集合
用户时隙集合
用户收藏
用户收藏预约
获取Lynda1102所有时隙的查询
// get all time slots
override fun getAllSlots(): MutableLiveData<List<Slots>> {
remoteDB.collection("Timeslots").whereEqualTo("id", "Lynda1102")
.addSnapshotListener { querySnapshot, e ->
// check if null
if (e != null) {
Timber.e("Listen failed. $e")
savedAllTimeSlots.value = null
}
val saveTimeSlots: MutableList<Slots> = mutableListOf()
for (doc in querySnapshot!!) {
val slotItem = doc.toObject(RemoteTimeSlots::class.java).apply { id = doc.id }
.mapToTimeSlots()
saveTimeSlots.add(slotItem)
}
// Post value
savedAllTimeSlots.value = saveTimeSlots
}
return savedAllTimeSlots
}
我正在观察 Activity 中的数据
// observe for service changes
viewModel.getAllSlots().observe(this, androidx.lifecycle.Observer {
timeSlotsAdapter.differ.submitList(it)
})
如何查询和显示客户在特定日期的可用时段。
Ex- 在 2020 年 5 月 13 日,Lynda 共有三个插槽。客户预订了插槽号 - 2。
所以现在其他客户只能在 2020 年 5 月 13 日看到剩余的两个插槽(插槽 1 和插槽 3)。
如果在任何日期都没有预订空位。它应该显示所有三个插槽。所以用户可以创建约会。
【问题讨论】:
标签: android firebase android-studio google-cloud-firestore android-mvvm