Читать документ в Firestore из облачной функции firebase onCall - PullRequest
4 голосов
/ 26 апреля 2019

Я использую облачную функцию onCall firebase, чтобы проверить, существует ли документ в коллекции в пожарном депо. Если документ существует, я хочу продолжить, если он все еще не существует, чем я хочу его создать.

Я пробовал много разных вещей, но всегда получал ошибки, поэтому сейчас я пытаюсь идти шаг за шагом и просто получить содержимое файла, который, как мне известно, существует в коллекции. Коллекция называется "timeline_state", а документ называется "888"

.
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.afterLogin = functions.https.onCall((data, context) => {
  console.log("afterLogin STARTING");

  const getDocument = admin.firestore().collection('timeline_state').doc('888').get();

  return getDocument.then(doc => {
    console.log(doc);
    return doc
  }).catch(error => {
    console.log(error)
    return error;
 })
})

Когда я вызываю его из своего кода, я получаю пустой data объект, и в журнале функций Firebase я вижу, что функция работает, но я получаю ошибку:

/user_code/node_modules/firebase-admin/node_modules/gaxios/build/src/index.js:28
async function request(opts) {
      ^^^^^^^^

SyntaxError: Unexpected token function
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/user_code/node_modules/firebase-admin/node_modules/gcp-metadata/build/src/index.js:17:18)

Любые идеи о том, что я делаю неправильно, и, возможно, как я могу это исправить? Спасибо!

1 Ответ

8 голосов
/ 26 апреля 2019

Мое решение, благодаря полученному совету, было обновить механизм узла до 8.

Для этого я добавил следующее в package.json

"engines": {
  "node": "8"
}

Может, это кому-нибудь пригодится ...;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...