Один раз запросите сбор пожара и используйте данные документа - PullRequest
0 голосов
/ 06 июня 2018

У меня есть эта функция, чтобы пройти через коллекцию пожарных и вернуть данные документа в Observable.Затем, используя наблюдаемое, я хочу перебрать документы и добавить эти документы в другую коллекцию в firestore.

По какой-то причине каждый раз, когда эта коллекция предоставляла изменения, вызывается этот метод.Я хочу, чтобы он вызывался только один раз из определенного компонента.Любая помощь будет оценена.

addProductsToOrder(){

 this.myCartProducts = this.afs.collection(`/users/DfyEg7WwnPsz73ln0Ptd/mycart/l4c2QOQ4rb8sivOtXkSb/products`)
      .snapshotChanges().pipe(map(actions=>{
        return actions.map(a=>{
          const data = a.payload.doc.data();
          const id = a.payload.doc.id;

          return data;
        })
      }));


      //i have tried subscribe as well as forEach
      this.myCartProducts.forEach(val =>{
        console.log(val)
        //over here i'll add code to add this val into another firebase collection.
      })

  }

1 Ответ

0 голосов
/ 06 июня 2018

FB изначально не поддерживает метод .get (), но у вас есть две опции.

Использовать базовую ссылку

constructor(afs: AngularFirestore) {
 afs.collection('items').ref.get();
 }

Использовать .take (1)

// import { take } from 'rxjs/operators';
constructor(afs: AngularFirestore) {
  afs.collection('items').valueChanges().pipe(take(1));
}

@ davideast

...