我面临的问题是无法使用for循环从数组中的firestore
中获得一堆布尔值。
我想使用for循环同时获取所有布尔值。经过尝试后,我可以使用下面的代码获取布尔值:
if (queryDocumentSnapshots != null) {
if(!queryDocumentSnapshots.isEmpty()){
List<Boolean> amenities = new ArrayList<>();
for(QueryDocumentSnapshot queryDocumentSnapshot : queryDocumentSnapshots){
amenities.add(queryDocumentSnapshot.getBoolean(Amenity.AIR_CONDITIONER));
amenities.add(queryDocumentSnapshot.getBoolean(Amenity.AIR_CONDITIONER));
amenities.add(queryDocumentSnapshot.getBoolean(Amenity.BBQ_AREA));
amenities.add(queryDocumentSnapshot.getBoolean(Amenity.BBQ_TOOL));
amenities.add(queryDocumentSnapshot.getBoolean(Amenity.BATH_TUB));
}
amenities.size();
}
}
调试期间的设施size
:
我的Firestore结构图片如下:
如何使用for循环同时获取所有布尔值?
答案 0 :(得分:0)
QueryDocumentSnapshot上有一种方法getData(),该方法将文档中的所有字段作为Map返回。您可以迭代此映射的键以查找所有字段。例如:
for (QueryDocumentSnapshot queryDocumentSnapshot : queryDocumentSnapshots) {
Map<String, Object> data = queryDocumentSnapshot.getData();
for (String key : data.keySet()) {
// do something with the key
}
}