Firebase noobie, так что извините.
Приложение имеет иерархию containers
и widgets
.Каждый идентификатор уникален для своего типа (т.е. widgetID
все уникальны).
Пути выглядят следующим образом: containers/<id>/widgets/<id>
Для доступа к одному виджету widgetID
контейнера containerID
Я использую:
NSString *ref = [NSString stringWithFormat:@"containers/%@/widget/%@", containerID, widgetID];
FIRDatabaseReference *containers = [fb child:ref]
[[fb child:ref] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) ...
Чтобы получить доступ ко всем виджетам контейнера containerID
, я использую:
NSString *ref = [NSString stringWithFormat:@"containers/%@/widgets", containerID];
[[fb child:ref] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) ...
Другие части приложения могут перемещать виджеты.Как я могу получить доступ к определенному виджету, чей идентификатор, который я знаю, был перемещен?Я хотел бы сделать следующее:
NSString *ref = @"containers/*/widget/123";
[[fb child:ref] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) ...
Очевидно, что это не сработает.Является ли единственным решением запросить каждый контейнер и каждый виджет для каждого, а затем запустить что-то в самом глубоком блоке, если все совпадения?[Примечание: есть много containers
]