Nodejs GeoFirestore: geoFirestore.query не является функцией и неожиданным атрибутом 'query' - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь выполнить запрос, который возвращает результаты с местоположением в пределах 50 км и отметкой времени в течение 1 часа. Я использую GeoFirestore для этой задачи, но моя реализация, кажется, выбрасывает вышеуказанные ошибки. Документация меня немного смущает.

Эта страница предполагает, что я могу настроить запрос следующим образом:

//At the function I'm querying
const firebase = require('../firebase')

function getPosts() {
    let oneHourAgo = new Date(new Date() - 3600000)
    let ref = firebase.db.collection('posts')
    let geoFirestore = new GeoFirestore(ref)
    let geoQuery = geoFirestore.query({
        center: firebase.geopoint(location),
        radius: 50,
        query: (ref) => ref.where('d.timestamp', '>', oneHourAgo)
    })

    return geoQuery.query().get()
    .then(//...)
}

//at firebase.js (a wrapper where I centralize common firebase methods)
let db = admin.firestore()

function geopoint(location) {
    return new admin.firestore.GeoPoint(location.latitude, location.longitude)
}

module.exports = {
    db,
    geopoint
}

Приведенная выше реализация выдает geoFirestore.query is not a function

Вторая попытка после пример здесь с использованием geocollection:

function getPosts() {
    let oneHourAgo = new Date(new Date() - 3600000)
    let geoFirestore = new GeoFirestore(firebase.db)
    let geoCollection = geoFirestore.collection('posts')
    let geoQuery = geoCollection.near({
        center: firebase.geopoint(location),
        radius: 50,
        query: (ref) => ref.where('d.timestamp', '>', oneHourAgo)
    })

    return geoQuery.query().get()
    .then(//...)
}

Вторая попытка выдает Unexpected attribute 'query' found in query criteria.

Я искал метод .near() в документации, но не могу ' Кажется, он не найден.

PS: я кодирую в nodejs для серверной части.

...