Angularfire API наблюдается - PullRequest
       6

Angularfire API наблюдается

0 голосов
/ 04 сентября 2018

У меня есть два кода ниже

Не отражает никаких изменений в коллекции

this.taskToday = Observable.fromPromise(this.dbCollectionService.taskCollection.ref.where('dueDate', '==', moment().startOf("day").toDate()).get().then(doc=>{
            return doc.docChanges() .map(
                d =>  { 
                  const task =  d.doc.data() as Task;
                  const id =  d.doc.id 
                  return { id, ...task};
                  //return concat(task,id);
                }
            );
        }))

Отражение изменений, если таковые имеются в коллекции

this.taskToday = this.afs.collection('tasks', ref => ref.where('dueDate', '==', moment().startOf("day").toDate())).snapshotChanges().pipe(
        map(actions => actions.map(a => {
            const task = a.payload.doc.data() as Task;
            const id = a.payload.doc.id;
            return { id, ...task };
        }))
    );

Как сделать первый пример видимым, чтобы он мог срабатывать при любых изменениях в коллекции

Обновление

Я нашел

onSnapshot могу сделать это. пробуя код ниже,

this.dbCollectionService.taskCollection.ref.where('dueDate', '==', moment().startOf("day").toDate()).onSnapshot(doc => {
                 doc.docChanges() .map(
                d =>  { 
                  const task =  d.doc.data() as Task;
                  const id =  d.doc.id 
                }
            );
         })

Но возникла проблема с обновлением this.taskToday наблюдаемой переменной

...