获取用户位置后才能获取Firebase / Geofire数据

时间:2018-01-03 19:08:26

标签: swift firebase uicollectionview geofire

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

将您的获取数据功能放在ViewDidLoad

之外
func fetchData(){
   etc.
}

在位置出现时调用它:

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