【发布时间】:2020-04-14 19:50:37
【问题描述】:
我正在 kotlin 中开发一个应用程序,用于将图像发送给随机用户或来自 firebase 的多个用户。我的数据库结构如下:
- 用户
- bVk3KBL81AY2LUVUbC6G1qcLAcl2
- 用户名:测试
- uid : bVk3KBL81AY2LUVUbC6G1qcLAcl2
- 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