【问题标题】:How to store list of model class objects in firestore?如何在firestore中存储模型类对象列表?
【发布时间】:2020-11-01 10:10:25
【问题描述】:

我以前使用过 firebase 实时数据库,我只是将对象列表存储在数据库中。如何在firestore数据库中存储模型类对象的arraylist?

【问题讨论】:

    标签: firebase android-studio google-cloud-firestore google-cloud-functions


    【解决方案1】:

    将模型类对象一个一个制作并添加到一个ArrayList中,如下图:

    City city1 = new City("Los Angeles", "CA", "USA",
        false, 5000000L, Arrays.asList("west_coast", "sorcal"));
    City city2 = new City("Los Angeles", "CA", "USA",
            false, 5000000L, Arrays.asList("west_coast", "sorcal"));
    City city3 = new City("Los Angeles", "CA", "USA",
            false, 5000000L, Arrays.asList("west_coast", "sorcal"));
    ArrayList<City> list = new ArrayList<City>();
    list.add(city1);
    list.add(city2);
    list.add(city3);
    
    db.collection("cities").document("LA").set(list)
        .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);
            }
        });
    

    或者你也可以试试下面的方法

    City city1 = new City("Los Angeles", "CA", "USA",
        false, 5000000L, Arrays.asList("west_coast", "sorcal"));
    City city2 = new City("Los Angeles", "CA", "USA",
            false, 5000000L, Arrays.asList("west_coast", "sorcal"));
    City city3 = new City("Los Angeles", "CA", "USA",
            false, 5000000L, Arrays.asList("west_coast", "sorcal"));
    ArrayList<City> list = new ArrayList<City>();
    
    list.add(city1);
    list.add(city2);
    list.add(city3);
    Map<String, Object> docData = new HashMap<>();
    docData.put("modalExample", list);
    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);
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 2020-11-28
      相关资源
      最近更新 更多