, поэтому большинство, если не все примеры 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, если это поможет.