В настоящее время я пытаюсь создать собственный эластичный поиск (с меньшими возможностями и опытом) для фильтрации базы данных Firebase, я не использую эластичный поиск и Алголию, потому что хочу сделать все сам.
Прямо сейчас я пришел к этому методу:
1) получить все ключевые слова из моих дочерних узлов в firebase 2) добавить их в 3D HashMap
На данный момент он упорядочивает мои данные так, как яwant:
Map<String, Map<String, Map<String, String>>> map = new HashMap<>();
Пример: "Restaurants" { "Some restaurant Name" { "keywords": "Some,keywords,here" }
Все, что я хочу сейчас сделать, - это напечатать все значения, чтобы получить дальнейшее развитие в моем коде.
Вот как я пытаюсь напечатать:
for (Map.Entry<String, Map<String, Map<String, String>>> entry : map.entrySet()) {
Log.w("MAP =====> ", entry.getKey() + ": " + entry.getValue());
for (Map.Entry<String, Map<String, String>> entry1 : map.get(entry.getKey()).entrySet()) {
Log.w("MAP2 =====> ", entry1.getKey() + ": " + entry1.getValue());
for (Map.Entry<String, String> entry2 : map.get(entry.getKey()).get(entry1.getKey()).entrySet()) {
Log.w("MAP3 =====> ", entry2.getKey() + ": " + entry2.getValue());
}
}
}
Кажется, я не могу идти дальше, чем первый цикл for ...
Вот мой журнал:
W/MAP =====>: Restaurants: {}
W/MAP =====>: Hikes: {}
W/MAP =====>: Sports: {}
Как видите, журналы для "MAP2" и "MAP3" не отображаются. Как я могу выполнить итерацию через все?
Заранее спасибо, Добрый день / вечер / ночь!
PS .: Я знаю, что существуют запросы к базе данных, не хочу использовать .startAt()
или .endAt()
и т. Д.