【问题标题】:Get random user from Firebase从 Firebase 获取随机用户
【发布时间】:2020-04-14 19:50:37
【问题描述】:

我正在 kotlin 中开发一个应用程序,用于将图像发送给随机用户或来自 firebase 的多个用户。我的数据库结构如下:

  • 用户
    • bVk3KBL81AY2LUVUbC6G1qcLAcl2
      • 用户名:测试
      • uid : bVk3KBL81AY2LUVUbC6G1qcLAcl2

而且我不知道如何从 firebase 获取随机用户,我进行了搜索,但没有找到适合我的结构的最佳解决方案。

我试试这个帖子:How to get unique random product in node Firebase?

但代码不起作用我有多个错误

提前感谢任何能给我一些解决方案的人。

编辑 #1 我已经研究过它并且它正在工作,但我不知道如何将随机限制为 3 个用户。 在我的应用程序中,用户可以更改用户的限制,所以我需要更改随机限制。

我的代码:

fun chooseRandomUser() {

    val rootRef = FirebaseDatabase.getInstance().getReference()
    val productsRef = rootRef.child("users")

    val valueEventListener: ValueEventListener = object : ValueEventListener {
        override fun onDataChange(dataSnapshot: DataSnapshot) {
            val productList = ArrayList<String?>()
            for (ds in dataSnapshot.children) {
                val name = ds.child("username").getValue(String::class.java)
                productList.add(name)
                Log.d("FragmentActivity", "usernames : $name")
            }
            val productListSize = productList.size
            val randomProductList = ArrayList<kotlin.Int>()
            randomProductList.add(Random().nextInt(productListSize))
            Log.d("FragmentActivity", "list : $randomProductList")
        }

        override fun onCancelled(databaseError: DatabaseError) {
            Log.d("FragmentActivity", "Error: ${databaseError.message}")
        }
    }
    productsRef.addListenerForSingleValueEvent(valueEventListener)

}

【问题讨论】:

  • “代码不起作用我有多个错误”如果您需要我们的帮助,请在您的问题中包含该代码。还包括您收到的确切错误消息。
  • 我已经研究过了,它正在工作,但我需要随机限制的帮助,我用代码编辑我的问题。
  • 你可以通过一个简单的循环来限制你调用randomProductList.add(Random().nextInt(productListSize))的次数。请务必仔细检查您是否多次添加同一个用户。当然,除非这对您的用例是正确的,在这种情况下:去吧。
  • 感谢您的帮助,我创建了一个 EditText 并用它创建了循环,是的,我需要检查重复的数字。我正在寻找如何检查,谢谢。

标签: android firebase kotlin firebase-realtime-database


【解决方案1】:

据我所知,您想从您的 firebase 数据库中的所有用户列表中随机选择一个用户。您可以在 android 端简单地做到这一点。

我想您已经知道如何从 firebase 数据库中获取所有用户。将用户存储在列表中。然后我会尝试提出一个random 函数,它可以随机给我一个列表索引,我可以根据该随机索引从列表中选择该用户。

同样的实现也可以用于从该列表中选择多个用户。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 1970-01-01
    • 2021-07-31
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多