2016-08-17 72 views
0

您好我是swift新手,我在我的应用中使用了firebase。我想从firebase数据库获取一个孩子下的所有数据,并将其与已有的数组进行比较以找到缺失的值并在tableview中加载它们,我添加了用于执行此操作的代码,并且每次调用for循环当发现新的孩子时,我想从firebase数据库获取所有值后执行该循环。有什么方法可以执行此操作,或者有什么方法可以知道Firebase是否检索了所有数据。在此先感谢Firebase数据比较swift

func fetchUsers() 
{ 
    ingredientMasterArr.removeAll() 
    refhandle1 = ref.child("ingredients").observeEventType(.ChildAdded, withBlock: 
     { (snapshot) in 
     if let dictionary = snapshot.value as? [String : String] 
     { 
      let ingredients = IngredientsClass() 
      ingredients.id = dictionary["id"] 
      ingredients.ingredient_name = dictionary["ingredient_name"] 
      // ingredients.category 
      ingredientMasterArr.append(ingredients) 
     } 
      FilteredIngMasterArr.removeAll() 
       let temp = IngredientsClass() 
       for MasterID in ingredientMasterArr 
       { 
        if (ShopIngKeysArr .contains(MasterID.id!)){ 
        print("if",MasterID.ingredient_name) 
        } 
        else 
        { 
         print("else",MasterID.ingredient_name) 
         temp.id = MasterID.id 
         temp.ingredient_name = MasterID.ingredient_name 
         FilteredIngMasterArr.append(temp) 
        } 
       } 
      self.tbl_ingMaster.reloadData() 
    }) 
} 

回答

1

使用.value的事件类型,而不是.ChildAdded应该给大家上的结果:

refhandle1 = ref.child("ingredients").observeEventType(.Value, ... 

有关更多详细信息检索数据读取火力documentation

+0

非常感谢我试试这个.. – Mohanraj

+0

这个工作@Mohanraj? – Yasir