Как запросить несколько узлов / ссылок в Firebase - PullRequest
0 голосов
/ 26 октября 2019

У меня есть 2 узла, user_account_settings и users. Я хочу написать запрос, чтобы получить оба узла дочерних, где оба узла имя пользователя равно. Я пишу запрос, но он возвращает ноль. Как написать многореферентный запрос.

Структура данных:

enter image description here

ViewModel Класс:

private val databaseRef = FirebaseDatabase.getInstance().reference
        .orderByChild("username")
        .equalTo("faisal.askani")

    private val liveData = FirebaseQueryLiveData(databaseRef)

ProfileFramgnet:

viewModel.getDataSnapshotLiveData().observe(viewLifecycleOwner,  Observer { dataSnapshot ->
            if(dataSnapshot != null)
            {
                for (ds: DataSnapshot in dataSnapshot.children)
                {
                    //user node
                    if (ds.key.equals("users"))
                    {
                        val user = ds.getValue(User::class.java)
                        viewModel.setUserInfo(user!!)
                    }

                    if(ds.key.equals("user_account_settings"))
                    {
                        val userAccountInfo = ds.getValue(UserAccountSettings::class.java)
                        viewModel.setUserAccountInfo(userAccountInfo!!)
                    }
                }
            }
        })

1 Ответ

1 голос
/ 26 октября 2019

Как написать запрос с несколькими ссылками?

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

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

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