камин, где не возвращается результат - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть такой код, он возвращает мне ноль, хотя я ясно вижу, что у одной записи есть метка времени, которую я предоставляю в виде запроса.

const admin = require("firebase-admin")
const firestore = admin.firestore()
exports.getMatchByTimestamp = functions.https.onRequest(async (request, response) => {
  cors(request, response, () => {});
  const querySnapshot = await firestore
    .collection('matches')
    .where('timestamp', '==', request.query.timestamp)
    .get();
  let data = null;
  querySnapshot.forEach((doc) => {
    data = doc.data();
  });
  response.send(data);
});

С другой стороны, если я просто удаляю затем предложение where возвращает корректно последний документ.

exports.getMatchByTimestamp = functions.https.onRequest(async (request, response) => {
  cors(request, response, () => {});
  const querySnapshot = await firestore
    .collection('matches')
    //.where('timestamp', '==', request.query.timestamp)
    .get();
  let data = null;
  querySnapshot.forEach((doc) => {
    data = doc.data();
  });
  response.send(data);
});

URL, к которому я пытаюсь получить доступ 'http://localhost: 5001 / xxxx-xxxxx / us-central1 / getMatchByTimestamp? timestamp = 1587482125 '

Вот скриншот БД enter image description here

1 Ответ

2 голосов
/ 30 апреля 2020

Мое первоначальное предположение состоит в том, что ваш request.query.timestamp интерпретируется как строка, поэтому вы в конечном итоге сравниваете строку и число. Если это так, parseInt(request.query.timestamp, 10) должен сделать свое дело.

...