我正在尝试将geofirestore https://geofirestore.com/与react native一起使用,事实是我已经实现了在firestore中添加元素的方法,但是我已经在文档中读到数据必须由geofirestore方法添加。我是否必须更改所有方法并使用消防站方法?我使用javascript而不是typeScript,我看到有打字稿的示例,似乎它们已经更新了库,而其他示例不起作用。 如何在 bbdd 中添加元素? 我使用了geofirex,它非常简单,但它没有限制,我想更改为geofirestore才能使用此功能。 谢谢!
所以大多数(如果不是全部)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 保持最新状态。
这非常有效
await eventRef.update({'d.arrUsers': firebase.firestore.FieldValue.arrayUnion(userUid)});
但是我无法完成这项工作,这是一张地图,我想在它正常工作之前添加另一个用户......
await eventRef.set({'d.userMap': { [userUid]: { 名称:名称, 年龄:年龄 } }}, {合并: 真});
如果我使用 update,它会删除存在的那个并放置新的,如果我这样做,它会将其从文档中的 d 中取出