Запрос Firebase не возвращает правильные данные - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть следующие данные в Firebase:

- Info/
  -2018-09-23-13-38-00-WhyNewYo
  -2018-09-23-14-04-57-PompeoWe
  -2018-09-23-14-10-32-FocusonE
  -2018-09-23-14-39-00-SenPatty
  -2018-09-23-14-40-30-Rebelatt
  -2018-09-23-14-57-33-Piratesa

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

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

FIRDatabaseReference *dataRef = [[FIRDatabase database] reference];
dataRef = [dataRef child:[NSString stringWithFormat:@"/info"]];
[[[dataRef queryOrderedByValue] queryLimitedToLast:2] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
    NSDictionary *infoFromFirebase= snapshot.value;

1 Ответ

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

Когда вы запрашиваете и наблюдаете FIRDataEventTypeValue, вы получаете все соответствующие узлы в одном снимке.Если вы вызываете snapshot.value, данные преобразуются в словарь, и информация о порядке совпадающих узлов теряется.

Чтобы сохранить порядок узлов, обязательно выполните итерации по дочерним элементам snapshot с for (FIRDataSnapshot* child in snapshot.children) { … }.

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