Несколько дней назад я спросил this question о получении данных из Firebase. Ответ на вопрос включал цикл for через петлевые дочерние узлы, используя FEventTypeValue и свойство .children для моментальных снимков. Он отлично работал, делая то, что мне было нужно.Свойство .children на Firebase iOS отображается как ноль, когда есть дочерние узлы
Однако, я пробовал использовать подобную логику, и он показывает .children как nil.
Вот как выглядит данные, как:
--languagesList ----English -------Ari ---------Age: 28 ---------Country: United States ---------distance: 2 -------Philip ---------Age: 27 ---------Country: United States ---------distance: 1 ----Spanish -------Mauricio ---------Age: 30 ---------Country: Mexico ---------distance: 4
Вот пример кода (это в viewDidLoad):
NSString* selectedLanguagePath = [NSString stringWithFormat:@"languagesList/%@", [DataSource sharedInstance].languageSelected];
Firebase *languagesRef = [[DataSource sharedInstance].ref childByAppendingPath:selectedLanguagePath];
[[languagesRef queryOrderedByChild:@"distance"] observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
for (FDataSnapshot *child in snapshot.children) {
NSDictionary *dict = child.value;
NSString *uid = child.key;
NSLog(@"%@", child.key);
NSLog(@"%@", child.value);
NSLog(@"%@", snapshot.key);
NSLog(@"%@", snapshot.value);
[self.distanceMutableArray addObject:dict];
}
NSLog(@"%@", snapshot.key);
NSLog(@"%@", snapshot.value);
NSLog(@"%@", snapshot.children);
NSLog(@"%lu", (unsigned long)snapshot.childrenCount);
NSLog(@"%@", snapshot.priority);
NSLog(@"%@", snapshot.ref);
NSLog(@"%@", self.distanceMutableArray);
}];
В примере, цикл никогда не заканчивается, потому что .children является ноль. snapshot.key - это «английский», что является правильным в этом случае. Snapshot.childrenCount равен нулю, хотя этого не должно быть.
Любые советы? То, что я пытаюсь сделать, это заполнить массив всей информацией на «английском» узле кода, который сортируется по расстоянию. Таким образом, это будет набор словарей, который бы выглядел так:
NSArray* englishArray = @[@{"Age": @27, "Country": @"United States", "distance": @1}, @{"Age": @28, "Country": @"United States", "distance": @2}
}; более
Одна вещь, в моей безопасности и правил, у меня есть:
"languagesList": {".read": true, ".write": true, ".indexOn" : "distance"}
Не имеет отношения, но где находится 'self.distanceMutableArray'? – trojanfoe
Извините, это не словарь словарей, который я надеюсь сделать, это набор словарей. Я сейчас отредактирую вопрос –
Хорошо. Теперь скажите мне, где это выделено. – trojanfoe