我正在用Kotlin开发一个应用程序,用于将图像从Firebase发送给随机用户或多个用户。我的数据库的结构如下:
我不知道如何从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)
}
答案 0 :(得分:1)
据我了解,您想从Firebase数据库中拥有的所有用户列表中选择一个随机用户。您可以在android端简单地做到这一点。
我认为您已经知道如何从Firebase数据库中获取所有用户。将用户存储在列表中。然后,我将尝试提出一个random
函数,该函数可以给我随机的列表索引,然后我可以基于该随机索引从列表中选择该用户。
同样的实现也可以用于从该列表中选择多个用户。
我希望能帮上忙。