从 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 - 如何随机获取一些项目[重复]

如何从firebase获取用户名和全名的字符串列表?

从arraylist firebase获取随机对象

如何从父级及其子级的 Firebase 中获取随机数据 [重复]

如何在 Firebase 上随机获取相同的数据?

获取firebase实时数据库中的随机条目