Firestore - batch.add не является функцией
документация для пакетных списков Firestore только списки set()
, update()
и delete()
в качестве разрешенных операций.
Невозможно добавить операцию add()
в пакет? Мне нужен документ, который будет создан с автоматически сгенерированным идентификатором.
Ответы
Ответ 1
Вы можете сделать это в два этапа:
// Create a ref with auto-generated ID
var newCityRef = db.collection('cities').doc();
// ...
// Add it in the batch
batch.set(newCityRef, { name: 'New York City' });
Метод .doc()
ничего не пишет в сети или на диске, он просто делает ссылку с автоматически сгенерированным идентификатором, который вы можете использовать позже.
Ответ 2
В соответствии с документами
За кулисами,.add(...) и .doc(). set (...) полностью эквивалентны, поэтому вы можете использовать то, что удобнее.
Возможно, это относится и к партиям?
Ответ 3
Создайте ссылку на коллекцию, в которую вы собираетесь добавить пакетные данные. Мы зациклились на req.body, используя forEach, и установили все данные, которые нужно добавить в коллекцию, используя метод set.
Мы фиксируем данные и сохраняем данные в коллекции, используя метод commit, и в случае успеха отправляем ответ об успешном выполнении.
облачный пожарный магазин
Ответ 4
В моем случае, используя AngularFire2, мне пришлось использовать метод batch.set(), передав в качестве первого параметра ссылку на документ с ранее созданным идентификатором и атрибут ссылки:
import { AngularFirestore } from '@angular/fire/firestore';
...
private afs: AngularFirestore
...
batch.set(
this.afs.collection('estados').doc(this.afs.createId()).ref,
er.getData()
);