2016-08-17 126 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