Получение данных из базы данных Firebase Realtime в Android

Я новичок в Firebase и NoSQL. У меня есть демо-версия Android с текстовым полем автозаполнения города, в котором я хочу заполнить города из базы данных Firebase во время набора текста.

{   "cities":{
        "Guayaquil":true,
        "Gualaceo":true,
        "Quito":true,
        "Quevedo":true,
        "Cuenca":true,
        "Loja":true,
        "Ibarra":true,
        "Manta":true
    }
}

Это то, что я до сих пор.

Как я могу получить из БД города, которые начинаются с буквы (ввод с клавиатуры)? Если я начну печатать «G», я хочу получить «Guayaquil» и «Gualaceo».

Если я используюorderByValue всегда возвращает пустой снимок.

Если я используюorderByKey вернуть весь список.

    Query citiesQuery = databaseRef.child("cities").startAt(input).orderByValue();
    citiesQuery.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            List<String> cities = new ArrayList<String>();
            for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                cities.add(postSnapshot.getValue().toString());
            }

Замечания: Если вы можете порекомендовать лучшую структуру данных, пожалуйста.

Ответы на вопрос(3)

Ваш ответ на вопрос