Хорошо, вы должны сделать следующие шаги:
- Сначала убедитесь, что вы создаете запрос по имени или идентификатору или даже по обоим, он должен быть уникальным
- Затем вы подписываетесь на этот запрос с помощью snapshotChanges
- Далее вы получите идентификатор из запрашиваемых объектов
- После этого вы используете этот идентификатор, чтобы обновить документ с новым значением
Это будет выглядеть примерно так:
updateDoc(_id: string, _value: string) {
let doc = this.afs.collection('options', ref => ref.where('id', '==', _id));
doc.snapshotChanges().pipe(
map(actions => actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, ...data };
}))).subscribe((_doc: any) => {
let id = _doc[0].payload.doc.id; //first result of query [0]
this.afs.doc(`options/${id}`).update({rating: _value});
})
}