ios - dispatch_group_notify never called -


i have code outlined below, final call dispatch_group_notify. never occurs

    // friends:     dispatch_group_enter(self.dbgetqueue)         getfriends.observesingleeventoftype(.value, withblock: { snapshot in             detaildata in snapshot.children {                  print(detaildata)                  self.friends.append(member(userid: detaildata.key, username: detaildata.value!["username"] as! string))              }         dispatch_group_leave(self.dbgetqueue)         })       // group memebers:     dispatch_group_enter(self.dbgetqueue)         getgroupmembers.observesingleeventoftype(.value, withblock: { snapshot in             groupmemberdetail in snapshot.children {                  print(groupmemberdetail)                 if groupmemberdetail.key != feastglobal.sharedinstance.userid {                      self.groupmembers.append(groupmemberdetail.key)                  }             }         })      // group invites presently out:     dispatch_group_enter(self.dbgetqueue)         getfriendmemberinvites.observesingleeventoftype(.value, withblock: { snapshot in             groupinvitepresentlysentdetail in snapshot.children {                  self.groupinvitessent.append(groupinvitepresentlysentdetail.key)             }         dispatch_group_leave(self.dbgetqueue)         })      dispatch_group_notify(self.dbgetqueue, dispatch_get_main_queue()) {         // final load of left of conacts (not user or friend)          // have list of friends, set iterate through:         // 0: not invited yet, 1: invited (eiter declined or not replied yet) not , 2: member -- have alert noting user became group member         print(self.groupmembers.count)         print(self.friends.count)         print(self.groupinvitessent.count)           afriend in self.friends {              print("friends name is: " + afriend.username)              var invitestatus = invite(username: afriend.username, status: "not invited yet", statussort: 0, name: afriend.username, userid: afriend.userid)              if self.groupmembers.contains(afriend.userid) {                  invitestatus.statussort = 2                 invitestatus.status = "member"                  self.memberstatuses.append(invitestatus)              } else if self.groupinvitessent.contains(afriend.userid){                  invitestatus.statussort = 1                 invitestatus.status = "invited"                  self.memberstatuses.append(invitestatus)              } else {                  self.memberstatuses.append(invitestatus)              }         }          self.tableview.reloaddata()     } 

hwo can alleviated?