从Firebase获取随机用户



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

  • 用户
    • bVk3KBL81AY2LUVUbC6G1qcLAcl2
      • 用户名:test
      • uid:bVk3KBL81AY2LUVUbC6G1qcLAcl2

我不知道如何从firebase中获得随机用户,我搜索了一下,但没有找到适合我的结构的最佳解决方案。

我试着写这篇文章:如何在节点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)
}

据我所知,您希望从firebase数据库中的所有用户列表中随机选择一个用户。你可以在安卓系统上简单地做到这一点。

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

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

我希望这能有所帮助。