【问题标题】:I want to filter Firebase data and display only users filtered by email on a recyclerview on kotlin我想过滤 Firebase 数据并仅在 kotlin 的 recyclerview 上显示通过电子邮件过滤的用户
【发布时间】:2021-10-26 17:05:33
【问题描述】:

我的 RecyclerViewActivity 上有这个功能,它可以获取 Firebase 存储中的所有数据

  private fun fetchData() {
       FirebaseFirestore.getInstance().collection("users")
           .get()
           .addOnSuccessListener { documents ->
               for (document in documents){
                   val user = documents.toObjects(User::class.java)
                   // I want to display only users with a determinate email
                   rvUsers.adapter = UserAdapter(this, user)
               }
           }
           .addOnFailureListener {
               Toast.makeText(this, "Error RecyclerViewActivity", Toast.LENGTH_LONG).show()
           }
   }
}

这是我的用户类

data class User ( var email: String = "",
                  var uid: String = "",
                  var restaurant: String = "",
                  var rating: String = "",
                  var imageUrl: String = ""
                )```
I would like to display only some users on the recyclerview, those are users filtered by email, but I don't know how to do it. Is was triying something like this ```user.equals(email)``` but dind't work. If anyone could help me please

【问题讨论】:

  • 请编辑您的问题并将您的数据库结构添加为屏幕截图,并指明您要过滤的确切用户,以及确切的标准。

标签: android firebase kotlin


【解决方案1】:

有两种方法可以回答您的问题:

  1. 如果您在进行任何获取之前已经有了过滤器,我强烈建议您进行查询以获取您需要的数据。无需获取所有集合。

  2. 如果您要在获取所有数据后过滤您的集合,那么我建议将您的数据存储在应用程序中的某个位置,然后如果您没有任何过滤器,请将整个集合传递给 RV,否则,通过过滤后的列表。

请让我确切地知道您想提供更多信息。

【讨论】:

  • 我知道我可以在获取数据之前或之后进行过滤,但我不知道哪个代码可以让我通过电子邮件进行过滤。正如我之前所说,我知道它可能类似于:if (user.equals(email)) { rvUsers.adapter = UserAdapter(this, user) } 问题是我不知道如何过滤 val 用户。
  • 我正在尝试这个:user.filter { it.email.toString() == email } 但它不起作用
  • 我相信post 可以提供比我更多的帮助。顺便说一句,您可以映射您的用户列表,然后将该列表传递给适配器。
  • 是的,帖子解决了我的问题,谢谢 :D
猜你喜欢
  • 2021-11-12
  • 2021-08-27
  • 1970-01-01
  • 2019-03-24
  • 2018-08-31
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多