2017-08-29 1 views
0

Je suis nouveau à firebase en train d'apprendre, je veux créer une option de filtre pour que les utilisateurs tirent des informations spécifiques sur d'autres utilisateurs pour mon application. Par conséquent, je souhaite récupérer certaines données d'utilisateurs Firebase en fonction des sélections d'utilisateurs dans ma vue de table. Par exemple, si un utilisateur a sélectionné (Homme, Etats-Unis, Lycée) je voudrais afficher tous les noms d'utilisateurs dont Country = "USA", gender = "Male" et school = "High School" à ma vue de table. J'ai essayé ce code ci-dessous pour une seule option (Sexe) mais je ne sais pas comment le faire pour les autres options Requêtes (Ecole, Pays) enter image description here. apprécierait si vous pouviez me montrer comment le faire. grâceComment récupérer des résultats de données Firebase spécifiques en fonction de la préférence des utilisateurs dans IOS?

let ref = Database.database().reference() 

    ref.child("users").queryOrdered(byChild: "Gender").queryEqual(toValue: genderLbl.text) // "genderLbl.text = "Male" 

Répondre

0

Comme vous le savez probablement déjà Firebase est un système de base de données non-SQL, ce qui signifie que vous ne pouvez pas récupérer des données comme vous le faites dans une base SQL avec des requêtes, il n'y a pas de relations entre les éléments. Vous devez penser à votre modèle en termes de données que vous souhaitez récupérer.

Il est votre travail pour créer un chemin où vous mettez une référence (lors de la création d'un utilisateur) à tous les utilisateurs de Etats-Unis, de sexe masculin, en classe de seconde, du nom de James, comme:

- Users 
- UsersByCountry 
    - USA 
     - Male 
      - HighSchool 
       - James 
        - 846efz-ezf4z6e-zef6ze4f8 (id of the user) 
        - 846efz-315da3z-az5z5e422 
        - 846efz-azd5a7z-dafg4g5ej 
       - Alfred 
       - Robert 
      - ElementarySchool 
     - Female 
    - UK 
    - Canada 

Si vous avez un Beaucoup de relations dans votre modèle et votre service nécessite de récupérer beaucoup de données connectées, je vous conseille de changer pour une base de données sql.