IOS 如何根据用户偏好检索特定的 firebase 数据结果?

How to retrieve specific firebase data results based on users preference in IOS?

我是刚开始学习 firebase 的新手,我想为用户创建一个过滤器选项,以便为我的应用程序提取有关其他用户的特定信息。因此,我想根据用户对我的表视图的选择来检索某些 firebase 用户数据。例如,如果用户选择了(男性,美国,高中),我想在我的表格视图中显示所有国家= "USA"、性别= "Male" 和学校= "High School" 的用户名.我已经在下面的代码中尝试了一个选项(性别),但我不知道如何为其他选项查询(学校,国家/地区)。如果你能告诉我如何去做,我将不胜感激。谢谢

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

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

正如您可能已经知道的那样,Firebase 是一个非 sql 数据库系统,这意味着您无法像在带有查询的 sql 库中那样检索数据,元素之间没有关系.您必须根据要检索的数据来考虑您的模型。

你的工作是创建一条路径,你可以在其中引用(在创建用户时)所有来自美国的用户,男性,高中生,名叫 James,例如:

- 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

如果您的模型中有很多关系并且您的服务需要检索大量连接的数据,我建议您更改为 sql 数据库。