обратитесь к идентификатору do c, используя условие where в snapshotChanges () - PullRequest
1 голос
/ 02 мая 2020

Я получаю данные, используя snapshotChanges(). Я хочу добавить where условие к нему и получить данные только 1 do c из collection.

Ниже мой код:

this.firestore.collection('notifications' , ref => ref 
 .where(document id , "==" , "1")  // giving error
)
.snapshotChanges()
.subscribe(response => {
  if(!response.length){
    console.log("no data available");
    return false;
  }
  this.notifyarr = [];   
  for(let item of response){
    this.notifyarr.push(item.payload.doc.data());
    console.log(this.notifyarr);
    this.notification_length = this.notifyarr.length;
    console.log(this.notification_length);
  }
}) 

Эта строка кода выдает ошибку .where(document , "==" , "1") // giving error

Как мы ссылаемся на документ, используя .snapshotChanges()?

Ответы [ 2 ]

1 голос
/ 02 мая 2020

Если вы знаете, что вам нужен только один документ, использующий его идентификатор, почему бы вам просто не создать AngularFirstoreDocument для нужного документа и вызвать snapshotChanges по этой ссылке?

this.firestore.collection('notifications').doc(id).snapshotChanges()...

Нет необходимости создавать запрос, который дает вам только один документ.

1 голос
/ 02 мая 2020

Если вы хотите запросить, чтобы проверить, что documentid равно значению, вам следует сделать следующее:

where(firebase.firestore.FieldPath.documentId(), "==" , "1")
...