我正在尝试使用带有响应本机的geofirestore https://geofirestore.com/,事实是我已经实现了在firestore中添加元素的方法,但是我已经阅读了文档,其中数据必须由geofirestore添加方法。我必须更改所有方法并使用firestore方法吗?我使用的是javascript而不是typeScript,我看到有一些带有typescript的示例,并且似乎它们已经更新了库,而其他示例却无法正常工作。 如何在bbdd中添加元素? 我使用了geofirex,它非常简单,但是没有限制,我想更改为geofirestore才能使用此功能。 谢谢!
答案 0 :(得分:2)
因此,即使不是全部,大多数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);
});
});
});
无论如何,如果您只剥离: GeoFirestore
或任何有效的JS ...,请不要担心Typescript代码示例。
// 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);
最后,如果有帮助,我尝试使此viewers app与Vanilla JS保持最新。
答案 1 :(得分:0)
这很好用
等待eventRef.update({'d.arrUsers': firebase.firestore.FieldValue.arrayUnion(userUid)});
但是我无法完成这项工作,它是一张地图,我想添加另一个用户,然后才能正常工作...
等待eventRef.set({'d.userMap':{ [userUid]:{ 名称:名称, 年龄: } }},{合并:true});
如果我使用update,它将删除存在的一个,并放入新的,如果这样做,它将把它从文档中的d中取出