swift - 仅在获取用户位置后获取 Firebase/Geofire 数据

标签 swift firebase uicollectionview geofire

我正在开发一个应用,它使用 GeoFire 仅从距用户位置 10 公里半径范围内的 Firebase 获取数据。然后填充 CollectionView。

问题:
当互联网速度较慢时,它会加载没有数据的 CollectionView。可能是因为移动设备还没有时间获得准确的用户位置。

我的 fetchData() 函数位于 ViewDidLoad() 内。

如何才能仅在用户定位完成后才执行 fetchData() 函数?

所需流量:
- 启动应用程序
- 获取用户位置
- 仅在获取用户位置后才使用数据填充 CollectionView
- 加载CollectionView

最佳答案

将获取数据函数放在 ViewDidLoad 之外

func fetchData(){
   etc.
}

当位置到达时调用它:

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
   guard let location = manager.location else {return}
   etc.
   fetchData()
}

关于swift - 仅在获取用户位置后获取 Firebase/Geofire 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48083667/

相关文章:

ios - 旋转时多次调用方法 collectionview(cellForItemAtIndexPath)

ios - swift - 跳跃时暂停动画

ios - 选择单元格内的图表时,如何停用 tableView 单元格内的垂直滚动?

android - FirebaseMessagingService - 如何从后台更新数据库或 SharedPreferences?

firebase - flutter/firebase 数据库中的一个简单的 where 子句

firebase - 如何在 flutter 中捕获 StorageException

ios - 像 Lyft 应用程序一样集中放置 ImageView

ios - 在 UICollectionView 下面插入 subview

swift - 创建具有特定值/存储属性的枚举

ios - Quickblox 用户通过 lastRequestAt 的在线状态