Функции Netlify Lambda: продолжайте получать путь, который должен быть строкового типа

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

Вот мой код:

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

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

}

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

Function invocation failed: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number

🤔 А знаете ли вы, что...
Node.js обеспечивает высокую скорость обработки ввода-вывода (I/O), благодаря асинхронной модели.


1
4 787
1

Ответ:

Решено

Я понял. Причина, по которой это не сработало, заключается в том, что 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()]
};

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

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