Я использую GeoFlutterFire, плагин для Flutter, который отсеивает коллекцию для записей, которые находятся рядом с указанной точкой GeoFirePoint. .
Ключ расстояния должен возвращаться с Firestore <DocumentSnapshot>s
, но его нет, только ключи по умолчанию. Когда я ищу его, как показано ниже, он возвращает null. Ключ не существует.
- Я пробовал изменить местоположение GPS эмуляторов, а затем usersAddressGeoFirePoint, не повезло.
- В инструкциях неясно, создает ли GeoFire это поле или ему нужно, чтобы оно существовало заранее как поле Firestore. Я попытался создать поле Firestore вручную с фиктивным значением, и тогда значение, которое я получаю из загрузки, - это не расстояние между двумя
geopoint
точками, а фиктивное значение, которое оно было установлено в Firestore.
Это большое разочарование, мне нужно расстояние, чтобы я мог показать его на карточках в приложении, мой код очень близок к примеру кода для плагина, поэтому я не понимаю, почему он не работает.
GeoFirePoint usersAddressGeoFirePoint =
geo.point(latitude: 56.088944, longitude: -4.151800);
localJobsStream = geo.collection(collectionRef: myFirestore.collection('JobsMeta'))
.within(center: usersAddressGeoFirePoint, radius: 1000, field: 'position', strictMode: true);
localJobsStream.listen((List<DocumentSnapshot> documentList) {
${documentList[0].data.keys.contains('distance')}");
}