Получить случайного пользователя из Firebase - PullRequest
0 голосов
/ 14 апреля 2020

Я работаю над приложением в kotlin для отправки изображения случайному пользователю или нескольким пользователям из firebase. Моя база данных структурирована следующим образом:

  • Пользователи
    • bVk3KBL81AY2LUVUbC6G1qcLAcl2
      • имя пользователя: test
      • uid: bVk3KBL81AY2LUVUb0112112111111111111111111211111111111011 *

    И я не знаю, как получить случайного пользователя из firebase, я искал, но не нашел лучшего решения для своей структуры.

    I попробуйте с этим постом: Как получить уникальный случайный продукт в узле Firebase?

    Но код не работает У меня есть несколько ошибок

    Заранее спасибо всем тот, кто может дать мне несколько решений.

    Edit # 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)
    
    }
    

1 Ответ

1 голос
/ 14 апреля 2020

Насколько я понимаю, вы хотите выбрать случайного пользователя из всего списка пользователей, которые есть в вашей базе данных firebase. Вы можете просто сделать это на стороне android.

Я думаю, вы уже знаете, как получить всех пользователей из базы данных Firebase. Храните пользователей в списке. Затем я попытался бы придумать функцию random, которая могла бы дать мне случайный индекс списка, и я мог бы выбрать этого пользователя из списка на основе этого случайного индекса.

Та же реализация может go для выбора нескольких пользователей из этого списка.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...