0
votes

Comment obtenir une liste de documents dans une collection, en utilisant une coupe-feu angulaire

I a m Essayez d'obtenir la liste des documents dans les collections, mais ne pouvez pas obtenir de document, C'est du code ce que je suis essayé- `

SchoolCollection:{
   1st:{products:{}},
   2nd:{products:{}},
}


0 commentaires

3 Réponses :


1
votes

Première question que j'ai: vous passez dans un paramètre 'Nom de l'école' dans la fonction, puis this.db.collection (nom de l'école) . Le nom de l'école est-il réellement le nom de la collection, ou est-ce l'ID d'un document dans la collection?

Quelle erreur utilisez-vous votre sortie de console lorsque vous essayez cela? Avez-vous configuré vos autorisations Firestore pour autoriser les demandes?

Le schéma de base de données que vous avez affiché est déroutant, peut-être qu'un tir d'écran réel de votre configuration de la console Firebase pourrait être d'une utilisation plus utilisée.

modifier

Pour obtenir des données pour une collection à l'aide de la Firestore, vous devez créer le chemin correct de la collection souhaitée. Dans votre exemple, faire quelque chose comme this.db.collection (nom de l'école) .get () obtiendra tous les documents de cette collection. Remarque: Cela n'obtiendra aucune sous-collections! Ce type de requête n'est pas pris en charge par FireBase au moment de la rédaction de cela.

Disons que vous souhaitez obtenir tous les documents de la Sous-collection 'KitProducts'. Cela pourrait être réalisé en faisant this.db.collection (nom d'école + "/ 1er / kitproducts"). Obtenez () . Cela renvoie tous les documents de la Sous-collection 'KitProducts' 'qui résident dans le cadre d'un document avec ID' 1st 'dans la collection de noms d'école. Vous devez construire ces chemins afin de les interroger.

Vous semblez travailler au domaine des auditeurs en temps réel sur la collection. S'il s'agit de votre intention, vous devez utiliser la fonction OnSnapshot () . Prenant l'exemple précédent, écrire quelque chose comme this.db.collection (nom d'école + "/ 1er / kitproducts"). OnsnaShot () . Dans ce cas, un événement sera émis à tout moment, un document dans la collection SUBPRODUCTS SUB est édité, supprimé ou ajouté.

Plus de lecture:

https://firebase.google.com/docs/firestore / Query-Data / Écouter # listen_to_multiplate_documents_in_a_collection

https://firebase.google.com/docs / Firestore / Query-Data / Get-Data # get_all_documents_in_a_collection


3 commentaires

Le paramètre de schoolname inclut le nom de la collection, je ne reçois aucune erreur dans la console ou lors de l'exécution de la méthode, ni M pour obtenir une sortie à ce sujet, modifiera la question avec Schema Capturehot


Question mise à jour avec Schema Snap, espérons que ces détails ajouteront une entrée pour la recherche de solutions


Merci pour les informations, mais cela ne fait pas que beaucoup d'aide, j'ai déjà parcouru ces liens, mais en mettant en oeuvre, tout en mettant en œuvre, je ne reçois pas de valeurs, si vous pouvez partager un morceau de code de travail, qui sera plus utile.



0
votes

Je ne sais pas si vous en avez encore besoin, mais vous pouvez essayer d'essayer CollectionGroup ('Nom of Collection') CODE>.

Le code devrait ressembler à quelque chose de similaire à celui-ci: P>

    this.afs.collectionGroup('Users')
      .valueChanges().subscribe(users => {
      
      //this.userNames is an "Any" before my constructor.
      this.userNames = users

      //for loop allows me to get all the document's data
      for (let i = 0; i < users.length; i++) {
        
        //these const allow me to play with If conditionals
        const userEmail = this.userNames[i].email;
        const userRole = this.userNames[i].role;

        if (userRole == "User") {
          continue;
        } else {
          console.log(userEmail);
        }
      }
    });


0 commentaires

2
votes

Vous pouvez essayer quelque chose comme: xxx

Après avoir obtenu les données et la créer une instance, vous pouvez refroidir ce code, pour le rendre plus lisible. J'espère que cela vous aidera!


0 commentaires