【问题标题】:How to upload array to Firestore Data in Android Studio Java如何在 Android Studio Java 中将数组上传到 Firestore 数据
【发布时间】: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 是否可以?

【问题讨论】:

    标签: java android arrays firebase google-cloud-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 中添加对象数组(甚至是嵌套地图)。但是,您应该将数组添加为列表。

    参考资料:

    【讨论】:

    • 您好,@Dharmaraj 我更新了我的问题,请查看。
    • @TonyStark 您可以添加一个对象数组...只需将 arr 放入哈希图中即可。 iirc 您需要将其转换为文档中的列表。
    • 您能否按照评论中所说的那样编辑您的答案。
    • 更新了答案??。
    • 如果我想访问它,我该怎么做?
    猜你喜欢
    • 2020-11-08
    • 2020-11-28
    • 1970-01-01
    • 2021-08-08
    • 2020-08-27
    • 2020-10-08
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多