有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我想上传这样的数据:

Image

编辑的问题

//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) 个答案

  1. # 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中添加对象数组(甚至嵌套贴图)。但是,您应该将数组添加为列表

    参考资料: