【问题标题】:Firebase Firestore Query in Android KotlinAndroid Kotlin 中的 Firebase Firestore 查询
【发布时间】: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


    【解决方案1】:

    在时隙内添加一个字段为isAvailable:true。每当用户选择时隙时,将key标记为false,并查询出isAvailable为true的时隙。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      相关资源
      最近更新 更多