Firebase Kotlin Ссылка более чем на одного ребенка - PullRequest
0 голосов
/ 08 мая 2019

Я использую базу данных Firebase Realtime для своего Android-приложения с использованием Kotlin.

У меня есть JSON в следующем формате.

    {
  "main1": {
    "branch1": [
      {
        "a": "Test1",
        "b": "Test2"
      },
      {
        "a": "Test3",
        "b": "Test4"
      }
    ],
    "branch2": [
      {
        "a": "Test5",
        "b": "Test6"
      },
      {
        "a": "Test7",
        "b": "Test8"
      }
    ]
  }
}

Я хочу получить результаты для более чем одного ребенка и отобразить их в представлении Recycler.

В настоящее время я могу заполнить только один ребенок с указанным ниже кодом.

FirebaseDatabase.getInstance().getReference().child("main1").child("branch1")

Но я не могу найти запрос, чтобы получить комбинированные результаты для branch1 и branch2. Также я мог бы иметь main2 с branch3 и branch4.

Как получить их в виде одного вывода для нескольких дочерних элементов, которые будут отображаться в RecyclerView.

1 Ответ

0 голосов
/ 08 мая 2019

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

{
  "main1": {
      {
        "a": "Test1",
        "b": "Test2",
        "branch1": true
      },
      {
        "a": "Test3",
        "b": "Test4"
        "branch1": true
      },
      {
        "a": "Test5",
        "b": "Test6"
        "branch2": true
      },
      {
        "a": "Test7",
        "b": "Test8"
        "branch2": true
      }
  }
}

Если вы хотите получить все объекты, просто используйте следующую ссылку:

FirebaseDatabase.getInstance().getReference().child("main1");

Если вы хотите получить все объекты типа branch1 используйте следующий запрос:

FirebaseDatabase.getInstance().getReference().child("main1")
    .orderByChild("branch1")
    .equalTo(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...