Запрос в базе данных Firebase в iOS - PullRequest
0 голосов
/ 21 сентября 2018

Я работаю с базой данных Firebase, у меня есть следующие данные,

enter image description here

Мне нужно получить имена всех групп (GName) пользователя поего phoneNum, то есть все группы конкретного пользователя, как я могу получить это в Swift 4?

1 Ответ

0 голосов
/ 21 сентября 2018

Вам следует подумать о реструктуризации ваших данных.Если пользователь принадлежит более чем одной группе в вашем приложении, то вам, вероятно, придется дублировать свой пользовательский узел для каждой группы, к которой принадлежит пользователь в вашей структуре данных.Вы можете создать другой объект JSON, который содержит все группы, к которым принадлежит пользователь.Вот пример JSON для вас:

{
    "users": [{
        "xyz123": {
            "userId": "xyz123",
            "username": "user1",
            "phoneNum": "123456",
            "groups": [{
                "groupId": 1,
                "groupName": "aaa"
            }, {
                "groupId": 2,
                "groupName": "bbb"
            }]
        }
    }]
}

Что касается фильтрации по номеру телефона, вы можете собрать всех пользователей в списке и отфильтровать результат по критериям номера телефона

result = result.filter({item.phoneNum == "123456"})
* 1006.* или получить номер телефона пользователя на верхнем уровне, вызвать .child() метод с критериями номера телефона и выбрать конкретного пользователя.

Также взгляните на структурирование части данных в документации по firebase.

https://firebase.google.com/docs/database/ios/structure-data

Надеюсь, это поможет.

...