Flutter: Как добавить карты в DocumentSnapshot потока после загрузки GeoFlutterFire из Google Firestore - PullRequest
0 голосов
/ 15 апреля 2020

Являются ли DocumentSnapshots изменчивыми? Мне нужно добавить, как далеко находится точка GPS от GPS пользователя, прежде чем отправлять Stream в build (). Я пробовал:

  1. document.data.addAll ({'distance': distance});
  2. document.data ['distance'] = distance;
  3. document.data.update ('distance', (value) => distance);

Но они не прилипают, когда я печатаю поле,

print("Distance now assigned to record? ${document.data['distance']}");

это не сохранило значение расстояния. Есть ли способ сделать эту работу? Я хочу выполнить обработку, когда она прибудет, а не в виджете build (), чтобы сохранить код чище.

   localJobsStream = geo
        .collection(collectionRef: myFirestore.collection('JobsMeta'))
        .within(
            center: usersAddressGeoFirePoint,
            radius: 1000,
            field: 'position',
            strictMode: true);
          localJobsStream.listen((List<DocumentSnapshot> documentList) {
          double startLatitude = documentList[0].data['position']['geopoint'].latitude;
          double startLongitude = documentList[0].data['position']['geopoint'].longitude;
          double distance = usersAddressGeoFirePoint.distance(lat: startLatitude, lng: startLongitude);

          for (DocumentSnapshot document in documentList) {
            document.data.update('distance', (distance) => distance);
          }
    });

Я на самом деле использую плагин Flutter GeoFlutterFire , который якобы сохраняет расстояние в пакете Snapshot .data, но, насколько я вижу, это не так. Если каким-то чудом вы обнаружили, как вызвать это, тогда это решило бы, как наиболее точно определить расстояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...