Лямбда-функции Netlify: продолжайте получать путь должен иметь тип string - PullRequest
1 голос
/ 30 июня 2019

Я использую firebase-admin для извлечения данных и использую Netlify лямбда-функции для вызова службы. Это в основном это.

Вот мой код:

exports.handler = (event, context, callback) => {
  const { id = "toronto" } = event.queryStringParameters;
  const cityRefs = dbInstance.collection("cities");
  console.log("req.params.id", id);

  if (id === "mumbai") {
    console.log("in here", id);
    let cityRef = cityRefs.doc("id1");
    return cityRef
      .get()
      .then(doc => {
        if (!doc.exists) {
          console.log("No such document!");
        } else {
          console.log("Document data:", doc.data());
          callback(null, {
            statusCode: 200,
            body: doc.data()
          });
        }
      })
      .catch(err => {
        console.log("Error getting document", err);
        callback(err);
      });
    }

}

Я получаю сообщение об ошибке ниже. Я не совсем уверен, что делаю неправильно.

Ошибка вызова функции: TypeError [ERR_INVALID_ARG_TYPE]: аргумент «путь» должен иметь тип string. Полученный номер типа

1 Ответ

2 голосов
/ 03 июля 2019

Я понял это. Причина, по которой это не сработало, заключается в том, что firebase-admin был в комплекте. Поэтому я использовал https://www.npmjs.com/package/webpack-node-externals, чтобы связать firebase-admin. Я добавил это к webpack.functions.js:

const nodeExternals = require("webpack-node-externals");

module.exports = {
  externals: [nodeExternals()]
};

и я запускаю функцию netlify lambda с помощью следующей команды:

"start:lambda": "netlify-lambda serve src/functions --config ./webpack.functions.js"
...