Android Firestore如何使用querydocumentsnapshot for loop获取/获取一堆布尔值?

时间:2018-08-06 10:21:21

标签: android for-loop boolean google-cloud-firestore

我面临的问题是无法使用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

enter image description here

我的Firestore结构图片如下:

enter image description here

如何使用for循环同时获取所有布尔值?

1 个答案:

答案 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
    }
}