#javascript #google-cloud-firestore #google-cloud-functions #geofirestore
#javascript #google-cloud-firestore #google-cloud-функции #geofirestore
Вопрос:
Я написал 2 функции Firebase для:
1, позволяет пользователям проверять местоположение
2, запрос местоположений поблизости
Код проверки:
.https.onRequest(async(request, response) =>{
const uid = request.query.uid
const cat = request.query.cat
const addr = request.query.add
const name = request.query.name
const long = Number(request.query.long)
const lat = Number(request.query.lat)
const gpoint = new admin.firestore.GeoPoint(lat,long)
const db = admin.firestore()
const tstamp = Date.now()
const adata = {
createdate: tstamp,
checkins: 1,
lastcheckin: tstamp,
status: null,
createdby: uid,
category: cat,
address: addr,
name: name,
lat: lat,
long: long,
gid: null,
g: {
coordinates: gpoint,
},
}
await db.collection('places').add(adata)
response.send('OK')
})
Моя функция запроса для поиска близлежащих мест с использованием координат GPS:
.https.onRequest(async(request, response) =>{
const long= Number(request.query.long)
const lat = Number(request.query.lat)
const GeoFirestore = require('geofirestore').GeoFirestore
const database = admin.firestore();
const geofirestore = new GeoFirestore(database);
const Geo = geofirestore.collection('places')
const query = Geo.near({center: new admin.firestore.GeoPoint(lat,long), radius: 10 })
query.get()
.then((snapshot: { data: () => any }) =>{
// const data =(snapshot.data())
response.send(snapshot.data())
})
.catch((error: any) => {
console.log(error)
response.status(500).send(error)
})
})
Когда я запускаю запрос в своем браузере …/getplaces?long=46.93351240000001amp;lat=13.1321528
он всегда возвращает {}
Где я ошибаюсь?
TIA
Комментарии:
1. Изображение базы данных было обновлено, долгота и широта были неверными в геопункте. Теперь исправлено. результат запроса по-прежнему пуст.