我目前正在尝试构建自己的弹性搜索(具有更少的功能和经验)来过滤我的firebase数据库,我不使用elasticsearch也不使用Algolia,因为我想自己做所有。
现在我想出了这个方法:
1)从firebase中的子节点获取所有关键字 2)将它们添加到3D HashMap
中现在它按照我想要的方式安排我的数据:
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());
}
}
}
我似乎无法超越第一个循环......
这是我的日志:
W/MAP =====>: Restaurants: {}
W/MAP =====>: Hikes: {}
W/MAP =====>: Sports: {}
正如您所看到的,“MAP2”和“MAP3”的日志未显示,我如何迭代所有?
提前致谢, 美好的一天/傍晚/晚上!
PS:我知道firebase查询存在,我不想使用.startAt()
或.endAt()
等。