geofirestore не возвращает данные отдельных документов - PullRequest
1 голос
/ 06 августа 2020

Мы используем geofirestore npm пакет для получения ближайших документов.

Это облачная функция, которую мы используем для получения этих документов.

exports.getNearbyOffers = functions.https.onCall((data, context) => {
    const offers = GeoFirestore.collection('restaurants');

    const center : GeoPoint = new admin.firestore.GeoPoint(data["sourceLat"], data["sourceLng"]);

    const query = offers.near({center: center, radius: 100,});

    return query.get().then((value) => {
        console.log(value.docs);
        return value.docs;
    }).catch((err: any) => {
        console.log(err);
    });
});

Вывод на стороне клиента:

[{data: {}, distance: 0, exists: true, id: LdaLz30gv16Gv68Xw92i}, {data: {}, distance: 0, exists: true, id: Ux1Et5afklvZC4IKEkJy}, {data: {}, distance: 0, exists: true, id: h4kdFZpsn1UwPpTvPMxC}, {data: {}, distance: 0, exists: true, id: oqWfc41cfiWAcnvufVFd}, {data: {}, distance: 0, exists: true, id: pH0qW0V9rY43zvgkPQm8}]

Запрос возвращает правильные идентификаторы документов. Однако данные этих документов пусты, но в консоли Firestore каждый соответствующий документ имеет множество полей с данными (имя, рейтинг, адрес и т. Д. c.).

1 Ответ

3 голосов
/ 06 августа 2020

Это ожидаемо, потому что вы получаете только снимок. вам нужно запустить функцию data () для каждого do c, чтобы получить их данные:

query.get().then((value) => {
// All GeoDocument returned by GeoQuery, like the GeoDocument added above
  for (const doc of value.docs) {
    console.log(doc.data());
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...