2017-10-18 3 views
-1

Je travaille sur Android avec Firebase.
J'ai des problèmes lors de l'interrogation pour obtenir des objets avec l'enfant de la propriété enfant.
J'ai attaché ma structure de données.Firebase Query (Obtenir la propriété child child)

https://i.stack.imgur.com/SDcJh.png

Je veux obtenir des groupes contenant des utilisateurs avec certains UserID.

+0

Vous devez utiliser les requêtes imbriquées First Run Query pour les écouteurs Change Event dans lesquels vous lirez les clés puis allez lire le profil enfant ou les utilisateurs, ajoutez check si profile puis utilisez Query pour le profil d'écouteur d'événement unique et si pas de profil, puis lancez une requête pour les utilisateurs. puis lisez ses enfants.! Child (snapshot.gtKey()). Child (object.getType() "Profil"). AddSingleEventValue Listener –

Répondre

1

Dans ce cas, vous devez utiliser la dénormalisation, ce qui signifie que vous devez créer un autre noeud nommé userGroups dans lequel vous devez ajouter tous les groupes d'un utilisateur spécifique. Votre base de données devrait ressembler à ceci:

Firebase-root 
    | 
    ---- userGroups 
      | 
      --- userId1 
      |  | 
      |  --- groups 
      |   | 
      |   --- groupId1: true 
      |   | 
      |   --- groupId2: true 
      | 
      --- userId2 
        | 
        --- groups 
          | 
          --- groupId3: true 
          | 
          --- groupId4: true 

Avec cette structure de base de données, vous pouvez obtenir tous les groupes dans lesquels un utilisateur est séparé. Attachez juste un écouteur sur l'utilisateur désiré et récupérez tous les groupes de l'objet dataSnapshot.

+0

J'ai donc besoin de mettre à jour la structure db? –

+0

Oui, vous devez ajouter ce nouveau noeud qui résout votre problème. –