Firebase paginate и фильтр данных (swift) - PullRequest
0 голосов
/ 09 марта 2020

У меня есть табличное представление, в котором отображаются пользователи, упорядоченные по дате их создания в порядке убывания (самый новый участник сортируется первым). В этом же табличном представлении я также хочу найти и показать всех пользователей мужского пола в Нью-Йорке в возрасте от 30 до 40 лет на основе пользовательских настроек.

Моя база данных выглядит следующим образом

{
    "Ka8xxTgyFB8yYKH50j" : {
        "created" : 1583258308.2321649,
        "data" : "male_newyork_30"
    },
    "K222xTgyFBF33FD50j" : {
        "created" : 1583358308.2321649,
        "data" : "male_newyork_35" 
    },
    "Ka32T23R328yYKH50j" : {
        "created" : 1584258308.2321649,
        "data" : "male_seattle_30"  
    },
    "F323F32FB8yYKH50j" : {
        "created" : 1583558308.2321649,
        "data" : "female_newyork_30"
    }
...
}

Как указано в Расширенный запрос Firebase с фильтром в Swift , я пробовал следующее с ограничением для последних 6 пользователей (поэтому он загружает не все):

usersRef.queryOrderedByChild("data").queryStartingAtValue("male_newyork_30")
        .queryEndingAtValue("male_newyork_40").queryLimited(toLast: 6).observeSingleEventOfType(
       .Value, withBlock: { snapshot in
    print(snapshot)
})

Однако я не могу разбить эти данные на страницы, потому что не знаю, что отслеживать, чтобы загрузить следующих 6 пользователей.

Обычно, когда я добавляю нумерацию страниц, я запрашиваю дату создания пользователя и отслеживаю дату создания последнего пользователя, чтобы сравнить ее со следующей партией данных. Но этот подход только разбивает на страницы и не фильтрует данные.

Как я могу разбить на страницы и отфильтровать мои данные? Любая помощь очень ценится!

...