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

Fetch Firebase/Geofire data only after getting user location

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

问题:
当网速很慢时,它会加载没有数据的 CollectionView。可能是因为手机还没有时间获得准确的用户位置。

我在 ViewDidLoad() 中有我的 fetchData() 函数。

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

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

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

func fetchData(){
   etc.
}

当位置到达时调用它:

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