Firebase iOS SDK:如何在一个查询中获取多个数据

时间:2016-03-10 09:45:48

标签: ios objective-c firebase xcode7

我已经看过how to retrieve multiple data in one query firebase所以这可能是一个类似的问题,但我是Firebase的新手并且我没有正确使用它。

以下是我的情况:

我有一个像这样的Firebase数据库: Database structure

我想检索参与特定活动的用户 的修改
我试过吼叫,

Firebase* childrens = [server childByAppendingPath:@"Users"];
    Firebase* firebaseUser = [childrens childByAppendingPath:self.myuserid];
    Firebase* firebaseEvent = [firebaseUser childByAppendingPath:@"Events"];
    Firebase* fbuser= [firebaseEvent childByAppendingPath:@"Created"];
FQuery* query1 = [fbuser queryOrderedByChild:@"id"];
    handleFirebase = [query1 observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot){
        NSEnumerator* childrens = snapshot.children;
        [childrens.allObjects enumerateObjectsUsingBlock:^(FDataSnapshot* rootSnap,NSUInteger rootIndex,BOOL* rootStop){
            NSDictionary* rootData = rootSnap.value;
            NSString* rootKey = rootSnap.key;
            NSLog(@"\nRootKey: %@\nRootData: %@",rootKey,rootData);
        }];


这是NSLog

2016-03-10 15:27:23.399 SquadApp[4425:110128] 
RootKey: olbuzevent1
RootData: {
    createdTime = "2016-03-08T11:53:33Z";
    name = "OLBUZ event 1";
    participents =     {
        "335e63c9-46c6-4ff8-99e7-1537d99731f7" =         {
            id = "335e63c9-46c6-4ff8-99e7-1537d99731f7";
            joinnedTime = 0;
        };
    };
}
2016-03-10 15:27:24.150 SquadApp[4425:110128] 
RootKey: olbuzevent2
RootData: {
    createdTime = "2016-03-08T12:23:28Z";
    name = "OLBUZ event 2";
    participents =     {
        "335e63c9-46c6-4ff8-99e7-1537d99731f7" =         {
            id = "335e63c9-46c6-4ff8-99e7-1537d99731f7";
            joinnedTime = 0;
        };
    };
}

1 个答案:

答案 0 :(得分:1)

在NoSQL数据库中,您经常需要为数据建模,以便在应用程序中使用它。您当前的结构非常适合显示用户组织/参与的事件列表。如果这是您的一个用例,那就太棒了。

但是,如果您还有一个用例来显示参与某个活动的所有用户,那么您可能需要添加一个跟踪该数据结构的数据结构。

event_users
  eventid1
    uid1: 'participant'
    uid2: 'organizer'
    uid3: 'participant'

此过程称为非规范化,并在我们(相当陈旧的)blog postsdocumentation on structuring data之一中进行了介绍。在最后一页中,您可能还应阅读recommendation on nesting