Поиск значения EditText из Firebase - PullRequest
0 голосов
/ 08 мая 2019

Ранее я опубликовал вопрос о том, как искать значение edittext в firebase, и понял, что моя база данных настроена неправильно. Теперь у меня есть данные, отформатированные так:

{
  "Aaron A" : {
    "allDj" : {
      "-Le5EpHND7KF--XOT7Lc" : "hahahaha",
      "-Le5EsTfNaQ9h3BVeZRw" : "hahahaha",
      "-Le5Fgurpir7bIN3agRb" : "yousucks",
      "-Le5IsCThArSKGRTPnN5" : "ffffggg"
    }
  },
  "allDeeJays" : {
    "-Le5FguoZsnT2lejgAkZ" : "yousucks",
    "-Le5IsCPK69NTbgbgUUo" : "ffffggg",
    "-Le5J5CmPkddSaK_MgpG" : "ahhhaahhaahha"
  }
}

Я хочу иметь возможность поиска через "allDeeJays", вот что у меня есть:

query = mProfileDatabase.orderByChild("allDeeJays")
                      .startAt(t.getText().toString()).endAt(t.getText().toString() + "\uf8ff");

Я не могу обернуть голову, почему это не работает, любая помощь плюс объяснение будет принята с благодарностью.

EDIT

После замены того, что у меня было:

        query = mProfileDatabase.child("allDeeJays")
                .orderByValue()
                .startAt(t.getText().toString()).endAt(t.getText().toString() + "\uf8ff");

Я получаю новую ошибку, logcat не указывает, в какой строке он находится:

 com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.android.heydj.DjProfile

1 Ответ

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

Узел allDeeJays в вашем JSON не имеет строкового значения, поэтому ваши условия (например, .startAt(t.getText().toString())) ничего не будут возвращать.

Вы, вероятно, ищете:

query = mProfileDatabase.child("allDeeJays")
                  .orderByValue()
                  .startAt(t.getText().toString()).endAt(t.getText().toString() + "\uf8ff");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...