0

voici mon code pour vérifier un doc est là dans le collectionsComment gérer promesse FireStore

this.shopCollection = this.afs.collection<Shop>('shops', ref => { 
    return ref.where('fulladdress', '==', myString) 
}); 

je ne sais pas pourquoi je ne peux pas utiliser .then() et .catch() avec cette méthode. Quand je passe une chaîne à interroger et si aucun résultat trouvé comment je sais? J'utilise angularfire2 version ^5.0.0-rc.1 avec angular ^4.2.4 et firebase ^4.5.0.

S'il vous plaît aider.

+0

Parlez-vous de l'utilisation de cette méthode? https://firebase.google.com/docs/reference/js/firebase.firestore.Firestore#collection –

+0

@DougStevenson oui, parce que j'utilise 'angularfire2', ils l'ont appelé' AngularFirestoreCollection'. il a l'air les deux sont les mêmes. – Hareesh

+0

Le AngularFirestoreCollection retourné n'est pas une promesse. Consultez les docs pour savoir ce que vous pouvez faire avec, vous avez quelques options: https://github.com/angular/angularfire2/blob/master/docs/firestore/collections.md –

Répondre

2

je l'ai eu à travailler avec quelques changements

Voici mon code

this.afs.collection<Shop>('shops').ref.where('fulladdress', '==', myString) 
     .get() 
     .then(res => { 
     if(res.docs.length == 0){ 
      //no documents found 
     }else{ 
      //you got some documents 
      res.forEach(shop => { 
      console.log(shop.id); 
      console.log(shop.data()); 
      }) 
     } 
     }).catch(err => { 
     console.log('something went wrong '+ err) 
     }); 

Je ne suis pas sûr que ce soit la bonne façon, fonctionne très bien pour moi.