这不是一个必然会有“解决方案”的问题,但我想知道这个代码在扩展得更大时是否会导致内存问题。
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),或者它是否会加载更深入。你有什么想法?
答案 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(){
...
}
})