检查孩子导致可扩展性差?

时间:2017-04-04 16:41:23

标签: ios swift firebase firebase-realtime-database

这不是一个必然会有“解决方案”的问题,但我想知道这个代码在扩展得更大时是否会导致内存问题。

        ref.child("Teams").observeSingleEvent(of: .value, with: { (snapshot) in
            if snapshot.hasChild(self.teamName.text!){
                //Sets the a single team's values
            } else {
                //Displays a missing team alert
                let alert = UIAlertController(title: "Error" , message: "Team does not exist", preferredStyle: .alert)
                let actio1n = UIAlertAction(title: "Ok" , style: .cancel , handler: nil)
                alert.addAction(actio1n)
                self.present(alert, animated: true, completion: nil)
            }
        })

我有点想知道Firebase是否只是加载表面级别(每个团队的ID),或者它是否会加载更深入。你有什么想法?

2 个答案:

答案 0 :(得分:3)

Firebase将获取Teams下的FULL树。更多详情here

  

[...]当您在数据库中的某个位置获取数据时,您还会检索其所有子节点[...]

答案 1 :(得分:1)

正如Mihai所说:观察一个节点将检索整个节点。

要检查特定子节点是否存在,请仅观察该子节点:

ref.child("Teams").child(self.teamName.text!).observeSingleEvent(of: .value, with: { (snapshot) in
    if snapshot.exists(){
        ...
    }
})