如何在 Android Studio Java 中将数组上传到 Firestore 数据

Posted

技术标签:

【中文标题】如何在 Android Studio Java 中将数组上传到 Firestore 数据【英文标题】:How to upload array to Firestore Data in Android Studio Java 【发布时间】:2021-10-25 05:34:27 【问题描述】:

我想上传这样的数据:

已编辑的问题

//I have ArrayList<FoodModel> arr;
ArrayList<FoodModel> arr = new ArrayList<>();
arr.add(new FoodModel("Hamburger"));
arr.add(new FoodModel("Pizza"));
arr.add(new FoodModel("Chicken"));
//and so on...

我想将 ArrayList 上传到 firestore 是否可以?

【问题讨论】:

【参考方案1】:

您只需要在 hashmap 中添加一个列表字段:

Map<String, Object> docData = new HashMap<>();
docData.put("favFoods", Arrays.asList("Hamburger", "Vegetables"));

db.collection("data").document("one")
        .set(docData)
        .addOnSuccessListener(new OnSuccessListener<Void>() 
            @Override
            public void onSuccess(Void aVoid) 
                Log.d(TAG, "DocumentSnapshot successfully written!");
            
        )
        .addOnFailureListener(new OnFailureListener() 
            @Override
            public void onFailure(@NonNull Exception e) 
                Log.w(TAG, "Error writing document", e);
            
        );

或者,您也可以使用arrayUnion 将新项目添加到数组中。

DocumentReference docRef = db.collection("col").document("docId");
docRef.update("favFoods", FieldValue.arrayUnion("Pizza"));

您可以在 Firestore 中添加对象数组(甚至是嵌套地图)。但是,您应该将数组添加为列表。

参考资料:

Cloud Firestore Data Types

Update elements in an array

【讨论】:

您好,@Dharmaraj 我更新了我的问题,请查看。 @TonyStark 您可以添加一个对象数组...只需将 arr 放入哈希图中即可。 iirc 您需要将其转换为文档中的列表。 您能否按照评论中所说的那样编辑您的答案。 更新了答案??。 如果我想访问它,我该怎么做?

以上是关于如何在 Android Studio Java 中将数组上传到 Firestore 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何解决Android studio生成javadoc文件乱码

如何在Android studio中使用java8 的Lambda表达式

如何在Android Studio中使用Java的应用程序后台执行HttpURLConnection之类的任务?

如何从 Android Studio 中片段的 XML 布局导航到相应的 java 类?

如何在 Java 和 android studio 中实现 Canny Edge Detector

如何在 Android Studio 中组织布局资源文件? [复制]