Firebase StartAt () не работает - без нее возвращает те же результаты - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь получить первые 5 результатов (1-5), а затем (6-10) ... и так далее. Я сохраняю последнее полученное значение, чтобы начать с того места, где я остановился, но когда я проверяю новые значения, оно все еще показывает значения 1-5, а не 6-10.

Кроме того, я не понимаю, Мне действительно нужно использовать orderByChild, пока мои ключи уже отсортированы в DB.

My DB-

users
    +user1
    +user2
    +user3
    +user4
    +user5
    +user6
    .....
    +user50

Первый 1-5:

  task = await FirebaseDatabase.DefaultInstance.GetReference("users").OrderByValue().LimitToFirst(5).GetValueAsync().ContinueWith(t => t);

Это отлично работает . Теперь я пытаюсь получить пользователей 6-10

  lastUserId= "user5"
  task=null;
  task = await FirebaseDatabase.DefaultInstance.GetReference("users").OrderByValue().StartAt(lastUserId).LimitToFirst(5).GetValueAsync().ContinueWith(t => t);
  DataSnapshot dts = task.Result;
  foreach (DataSnapshot s in dts.Children)
  {
  Debug.Log(s.Key);
  }

вывод: user1 user2 user3 user4 user5 Почему он начинается с user1, если мой код говорит StartAt ("user5") ?? Что мне не хватает?

1 Ответ

2 голосов
/ 29 мая 2020

Согласно вашему комментарию, вот мой (очень короткий) ответ:

Вы должны использовать OrderByKey.StartAt('userId') вместо OrderByValue.

Рад, что смог помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...