2 votes

Comment ajouter des querysnapshots firebase à un flux ?

Je me demandais s'il était possible d'ajouter des requêtes firebase à un flux unique dans Flutter. Il s'agit de fusionner tous les flux en un seul.

Le code actuel récupère tous les utilisateurs que le compte suit, puis boucle sur l'identifiant de chaque utilisateur et récupère ses messages. Je me demandais si je pouvais fusionner toutes ces requêtes de messages en un seul flux principal.

Future<Stream<QuerySnapshot>> getfollowing() async{

    DocumentSnapshot userQuery = await Firestore.instance.collection('Users').document(id).get();//Gets who the user follows
    Stream<QuerySnapshot> fullprofilesdata ;

    for (String user in userQuery["following"]) {
      QuerySnapshot personQuery = await Firestore.instance.collection('Users')
          .document(user).collection("posts")
          .getDocuments();

      //fullprofilesdata.append(personQuery);

    }
    return fullprofilesdata;
  }

1voto

Jens Tofte Points 21

Je suis confronté au même problème, mais je pense que vous êtes sur la bonne voie. Tout ce que vous avez à changer, c'est la boucle for.

Vous définissez le même QuerySnapshot pour des données différentes (personQuery).

Créez plutôt un QuerySnapshot personQuery au-dessus de la boucle.

Il existe un moyen d'ajouter des données à un QuerySnapshot en utilisant :

personQuery.documents.add();

N'utilisez pas non plus getDocuments() car cela permet d'obtenir les données, mais pas le flux.

Utilisation snapshot() au lieu de cela.

J'espère que cela vous a aidé un peu :)

Bonne chance pour le codage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X