从 Firebase 获取随机用户
Posted
技术标签:
【中文标题】从 Firebase 获取随机用户【英文标题】:Get random user from 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 并用它创建了循环,是的,我需要检查重复的数字。我正在寻找如何检查,谢谢。
【参考方案1】:
据我所知,您想从您的 firebase 数据库中的所有用户列表中随机选择一个用户。您可以在 android 端简单地做到这一点。
我想您已经知道如何从 firebase 数据库中获取所有用户。将用户存储在列表中。然后我会尝试提出一个random
函数,它可以随机给我一个列表索引,我可以根据该随机索引从列表中选择该用户。
同样的实现也可以用于从该列表中选择多个用户。
希望对你有帮助。
【讨论】:
以上是关于从 Firebase 获取随机用户的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Android - 如何随机获取一些项目[重复]