首页 > 解决方案 > 将 Firebase 列表视图转换为 Firestore 列表视图

问题描述

由于我需要应用过滤器并且无法在实时数据库上执行,我正在将我的应用程序从 firebase 转换为 Firestore。

我有一个自定义列表视图,它可以根据下面使用 firebase 的代码完美运行。我已经复制了 Firestore 中的结构,因此让生活更轻松,但似乎无法让列表视图在 Firestore 上工作。

val dealRef = ref.child("Deal_Summary2").orderByChild("buyer_id").equalTo(userid)
    dealRef.addValueEventListener(object: ValueEventListener {
        override fun onCancelled(p0: DatabaseError) {

        }

        override fun onDataChange(p0: DataSnapshot) {
            if(p0!!.exists()){
                summarylist.clear()
                for (e in p0.children){
                    val deal = e.getValue(DealSummary::class.java)

                    summarylist.add(deal!!)

                }

                val adapter = Mydeals_buyer_adapter(applicationContext,
                    R.layout.mydeals_buyer_listview,
                    summarylist


                )
                listview.adapter=adapter

            }

        }

    })

我似乎被困在从 Firestore 中提取文档并将值存储到我的模型类DealSummary::class.java中。

我似乎无法在网上找到任何这样做的例子。

标签: kotlingoogle-cloud-firestore

解决方案


弄清楚了:

docref = FirebaseFirestore.getInstance()

    docref.collection("Deal_Summary2").whereEqualTo("buyer_id", userid).get()
        .addOnCompleteListener() { task ->

            if (task.isSuccessful()) {
                val summary = ArrayList<DealSummary>()

                for (document in task.result!!) {


                    summarylist.add(document.toObject(DealSummary::class.java))

                }

                val adapter = Mydeals_buyer_adapter(
                    applicationContext,
                    R.layout.mydeals_buyer_listview,
                    summarylist


                )
                listview.adapter = adapter


            } else {

                Log.d("Firestore_error", "No Data")
            }

推荐阅读