我正在评估Firebase作为我当前应用中Parse的替代品。但是,在查询远程数据时遇到了一个问题。
当我检索一个查询时,我得到了一个不一致的数据结构。
我的实时数据如下所示:
以前在Parse中为“牛肉,鸡肉,猪肉”设置的Bool值将刚刚保存在一个数组中,我将根据包含该项的每一行的数组进行查询。但是,由于Firebase建议数组在JSON中不好,我必须将它们作为Bool实现并基于它们的属性进行查询,所以我的查询看起来像这样
FIRDatabaseReference *ref = [[FIRDatabase database] reference];
FIRDatabaseReference *path = [ref child:@"recipes"];
FIRDatabaseQuery *query1 = [path queryOrderedByChild:@"beef"];
FIRDatabaseQuery *query2 = [query1 queryEqualToValue:[NSNumber numberWithBool:YES]];
[query2 observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
[self hideSpinner];
NSArray *recipes = (NSArray *)snapshot.value;
初始查询工作正常,数据返回如下
但是,如果我将查询修改为:
[path queryOrderedByChild:@"pork"];
数据结构完全不同,
然而它来自与之前的条目完全相同的json - 有没有人经历过类似的事情?它让我疯狂