Firebase 数据比较 swift

Posted

技术标签:

【中文标题】Firebase 数据比较 swift【英文标题】:Firebase data comparison swift 【发布时间】:2016-08-17 10:26:35 【问题描述】:

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

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, ...

阅读 firebase documentation 获取更多详细信息。

【讨论】:

以上是关于Firebase 数据比较 swift的主要内容,如果未能解决你的问题,请参考以下文章

android - 比较两个非常大的 ArrayList,其中一个是从 firebase 检索到的

从 Firebase 数据库中获取价值

Firebase 数据结构和安全性

Firebase + BigQuery - 唯一标识设备

Firebase 规则通配符和子级比较

将 BigQuery 中的多个 Firebase 数据集聚合为单个数据集