добавить, установить, обновить документ с геоинженером - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь использовать geofirestore https://geofirestore.com/ с реагировать нативно, дело в том, что я уже реализовал методы добавления элементов в firestore, однако я прочитал в документации, что данные должны быть добавленыметоды геовосстановления.Должен ли я изменить все методы и использовать методы пожарного депо?Я использую javascript, а не typeScript, я вижу, что есть примеры с машинописью, и кажется, что они обновили библиотеку, а другие примеры не работают.Как я мог добавить элементы в bbdd?Я использовал geofirex, и это было очень просто, но у него нет ограничений, я хочу перейти на geofirestore, чтобы использовать эту функцию.Спасибо!

Ответы [ 2 ]

3 голосов
/ 08 марта 2019

, поэтому большинство, если не все примеры Typescript, практически идентичны тем, что вы делаете в JS (а также в обычной библиотеке Firebase).Позвольте мне привести пример добавления и запроса (с ограничением) в react-native-firebase.

import firebase from 'react-native-firebase';

const doc = {
   coordinates: new firebase.firestore.GeoPoint(0, 0),
   name: 'The center of the WORLD'
};

const collection = firebase.firestore().collection('todos');

collection.add(doc).then((docRef) => {
   collection.limit(100).get().then((querySnapshot) => {
      // 100 items in query
      querySnapshot.docChanges.forEach((change) => {
         console.log(change.doc);
      });
   });
});

Теперь я никогда не использовал RNF, но из документов я могу понять, что это правильно, иони делают почти все так же, как библиотека JS Firebase (за исключением того, что docChanges возвращает как массив, а не как функцию, которая возвращает массив ...).В любом случае, давайте посмотрим на то же самое в Geofirestore с дополнительным преимуществом запроса с limit и near местоположением!

import firebase from 'react-native-firebase';
import { GeoFirestore } from 'geofirestore';

const doc = {
   coordinates: new firebase.firestore.GeoPoint(0, 0),
   name: 'The center of the WORLD'
};

const geofirestore = new GeoFirestore(firebase.firestore());
const geocollection = geofirestore.collection('todos');

geocollection.add(doc).then((docRef) => {
   geocollection.limit(100).near({
      center: new firebase.firestore.GeoPoint(0, 0),
      radius: 10
   }).get().then((querySnapshot) => {
      // 100 items in query within 10 KM of coordinates 0, 0
      querySnapshot.docChanges().forEach((change) => {
         console.log(change.doc);
      });
   });
});

В любом случае, не бойтесь примеров кода Typescript, если выпросто удалите : GeoFirestore или что-то еще действительное JS ...

// This in TS
const firestore = firebase.firestore();
const geofirestore: GeoFirestore = new GeoFirestore(firestore);

// Is this in JS
const firestore = firebase.firestore();
const geofirestore = new GeoFirestore(firestore);

Наконец, я стараюсь держать это приложение для зрителей в актуальном состоянии с Vanilla JS, если это поможет.

0 голосов
/ 10 марта 2019

Это прекрасно работает

await eventRef.update ({'d.arrUsers': firebase.firestore.FieldValue.arrayUnion (userUid)});

Однако я не могу сделать эту работу, это карта, и я хочу добавить другого пользователя, прежде чем он будет работать правильно ...

await eventRef.set ({'d.userMap': { [userUid]: { имя: имя, возраст: возраст } }}, {merge: true});

Если я использую обновление, оно удаляет существующее и помещает новое, если я это делаю, оно извлекает его из d в документе

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