From 对于每个循环,在 entry.getValue(( 中,还有另一个来自 firestore 的地图。我怎样才能得到?
法典:
@Override
public void onComplete (@NonNull Task < QuerySnapshot > task) {
if (task.isSuccessful()) {
// binding.contentMain.noData.setVisibility(View.GONE);
for (QueryDocumentSnapshot document : Objects.requireNonNull(task.getResult())) {
showLog("Data: " + document.getData());
postMap.putAll(document.getData());
}
try {
for (Map.Entry<String, Object> entry : postMap.entrySet()) {
if (entry.getKey().equals(CONTENT)) {
showLog("value: " + entry.getValue().toString());
contentMap = new HashMap<>();
contentMap.putAll(entry.getValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
// binding.contentMain.noData.setVisibility(View.VISIBLE);
showLog("Error getting documents: " + task.getException());
}
}
我像下面一样尝试,但编译器错误。无支撑:
Map map = new HashMap();
((Map)map.get( "keyname" )).get( "nestedkeyname" );
试试这个
contentMap.putAll((Map<? extends String, ? extends Object>) entry.getValue());
使用你的变量命名,试试这个
entry.iterator().next()
所以如果你有哈希图A:
{"key1":"value1",
"key2":"value2",
"key3":"value3"}
给定这个哈希图"入口集"的条目集,你可以做
entrySet.iterator().next()
如果在 while 循环中使用,可以遍历哈希图中的所有键和值