AngularFire2 (firestore) Нужно установить несколько документов одновременно, как база данных RealTime - PullRequest
0 голосов
/ 30 апреля 2018

Я переключаюсь с базы данных Firebases RealTime на Firestore. и есть небольшая разница в том, как добавить данные

мои данные

У меня есть объект продуктов

const productsObj {
    products : [ {...},{...},{...},{...} ]
    meta: {}
}

Firebase

моя предполагаемая структура ...

Коллекция : productsObj{}

Документы : productsObj.products (несколько)

Поля : productsObj.products[i].name

Мои попытки

this.productCollection = this.afs.collection('products'); // compared to productsObj

this.productCollection.add(productsObj); // adds all products as one doc
this.productCollection.add(productsObj.products); // cant add array
this.productCollection.add(productsObj.products[0]); // works

последний работает, но так ли это? Мне пришлось бы перебрать несколько объектов и вызывать firebase для каждого нового документа.

Каков наилучший способ добавить все productsObj.products как документы за один раз?

EDIT productCollection объявлено так productCollection: AngularFirestoreCollection<any>;

1 Ответ

0 голосов
/ 07 мая 2018

Когда вы add() в коллекции, вы создаете документ с каждым вызовом.

Вы хотите что-то вроде этого:

productsObj.products.forEach( (project) => {
  this.productCollection.add(product);
};

См. документацию AngularFire2 о добавлении документов в коллекцию .

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