Rub*_*444 3 ios firebase swift firebase-realtime-database
我有一个字符串数组,我试图通过firebase填充它.它是一个聊天应用程序,当用户创建一个房间时,他或她为房间命名.当用户登录并进入登录页面时,它会查询他或她正在参与的所有房间,我希望它能填充表格视图.在firebase docs中我发现了childrenCount,但我似乎无法让它工作.这是我到目前为止所尝试的
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let ref = firebase.child("users").child(fUID).child("participating")
ref.observe(.value, with: { (snapshot: FIRDataSnapshot!) in
print(snapshot.childrenCount)
rooms.count = snapshot.childrenCount
})
return rooms.count
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,即count是一个get get属性.如何填充该数组计数?
Firebase数据以异步方式加载(和同步).如果添加一些调试日志记录,这是最容易看到的:
let ref = firebase.child("users").child(fUID).child("participating")
print("Starting observing");
ref.observe(.value, with: { (snapshot: FIRDataSnapshot!) in
print("Got snapshot");
print(snapshot.childrenCount)
rooms.count = snapshot.childrenCount
})
print("Returning count");
return rooms.count
Run Code Online (Sandbox Code Playgroud)
运行此代码段时,日志记录输出将为:
开始观察
归还计数
得到快照
这可能不是您期望输出的顺序.它还解释了为什么您的计数永远不会正确:数据尚未加载,因此无法计算.
这就是Firebase侦听器使用回调块的原因:在数据同步时调用块.
| 归档时间: |
|
| 查看次数: |
7996 次 |
| 最近记录: |