FireStore Batched пишет в разных коллекциях - PullRequest
0 голосов
/ 01 июля 2018

Существует ли альтернативный способ выполнения набора записей для нескольких документов, принадлежащих различным коллекциям ?

Вроде как Пакетная запись на нескольких Документах как в официальных документах.

Транзакции и пакетные записи в Документах FireStore

Например,

WriteBatch batch = db.batch();

// Set the value of 'NYC' in 'cities' collection

DocumentReference nycRef = db.collection("cities").document("NYC");
batch.set(nycRef, map1);


// Set the value of 'ABC' in 'SomeOtherCollection' collection

DocumentReference otherRef = db.collection("SomeOtherCollection").document("ABC");
batch.set(otherRef,map2));

Возможно ли выполнять пакетную запись в другую коллекцию?

1 Ответ

0 голосов
/ 01 июля 2018

Пакетные операции могут работать в разных коллекциях. Из документации о пакетной записи :

// Get a new write batch
WriteBatch batch = db.batch();

// Set the value of 'NYC'
DocumentReference nycRef = db.collection("cities").document("NYC");
batch.set(nycRef, new City());

// Update the population of 'SF'
DocumentReference sfRef = db.collection("cities").document("SF");
batch.update(sfRef, "population", 1000000L);

// Delete the city 'LA'
DocumentReference laRef = db.collection("cities").document("LA");
batch.delete(laRef);

// Commit the batch
batch.commit().addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        // ...
    }
});

Поскольку вы передаете документ для записи в batch.set(), вы также можете передавать документ из другой коллекции для каждого вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...