【问题标题】:Android Firestore how to get/fetch bunch of boolean value with querydocumentsnapshot for loop?Android Firestore 如何使用 querydocumentsnapshot for 循环获取/获取一堆布尔值?
【发布时间】:2019-01-13 06:48:31
【问题描述】:

我面临无法使用 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 循环同时获取所有布尔值?

【问题讨论】:

  • 同时是什么意思?您实际获取这些布尔值的方式有什么问题?
  • 对不起,我不明白你的意思。你用的是什么类?请更具体地了解“同时获取所有布尔值”。举个例子让我们更好地理解。

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


【解决方案1】:

QueryDocumentSnapshot 上有一个方法getData(),它将文档中的所有字段作为地图返回。您可以迭代此映射的键以查找所有字段。例如:

for (QueryDocumentSnapshot queryDocumentSnapshot : queryDocumentSnapshots) {
    Map<String, Object> data = queryDocumentSnapshot.getData();
    for (String key : data.keySet()) {
        // do something with the key
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2013-04-24
    • 2023-01-14
    • 2021-08-03
    相关资源
    最近更新 更多