Как получить конкретные результаты Firebase данных на основе предпочтений пользователей в IOS?

Я новичок в Firebase, только изучая, я хочу создать опцию фильтра для пользователей, чтобы получать определенную информацию о других пользователях для моего приложения. Поэтому я хочу получить определенные данные пользователей Firebase на основе выбора пользователей в моем виде таблицы. Например, если пользователь выбрал (мужчина, США, средняя школа), я бы хотел отобразить имена всех пользователей, чья страна = "США", пол = "мужской" и школа = "средняя школа", в моем табличном представлении. Я попробовал этот код ниже только для одного варианта (пол), но я не знаю, как это сделать для других вариантов запросов (школа, страна) введите описание изображения здесь, был бы признателен, если бы вы могли показать мне, как это сделать. Спасибо

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

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

1 ответ

Решение

Как вы, наверное, уже знаете, Firebase - это система баз данных без SQL, что означает, что вы не можете получать данные, как вы делаете в базе SQL с запросами, между элементами нет никаких связей. Вы должны думать о своей модели с точки зрения того, какие данные вы хотите получить.

Это ваша работа, чтобы создать путь, где вы помещаете ссылку (при создании пользователя) на всех пользователей из США, мужчины, в старшей школе, по имени Джеймс, например:

- 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.

Другие вопросы по тегам