Как сохранить список объектов класса модели в firestore?

#firebase #android-studio #google-cloud-firestore #google-cloud-functions

#firebase #android-studio #google-облако-firestore #google-cloud-функции

Вопрос:

Ранее я использовал базу данных firebase в реальном времени, в которой я просто сохранял список объектов в базе данных. Как сохранить arraylist объектов класса модели в базе данных firestore?

Ответ №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);
            }
        });