部署 firebase 云 pub-sub 代码时出错

getting error while deploying firebase cloud pub-sub code

在 firebase 上部署发布-订阅代码时出现以下错误:

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function failed on loading user code. This is likely due to a bug in the user code. Error message: Code in file index.js can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /srv/node_modules/@google-cloud/pubsub/build/src/pubsub.js:527
    async *listSchemas(view = schema_1.SchemaViews.Basic, options) {
          ^

我不明白为什么会出现此错误。

代码如下:

exports.publish = async (req, res) => {
  if (!req.body.topic || !req.body.message) {
    res.status(400).send('Missing parameter(s); include "topic" and "message" properties in your request.');
    return;
  }

  console.log(`Publishing message to topic ${req.body.topic}`);

  const topic = pubsub.topic(req.body.topic);

  const messageObject = {
    data: {
      message: req.body.message,
    },
  };
  const messageBuffer = Buffer.from(JSON.stringify(messageObject), "utf8");

  try {
    await topic.publish(messageBuffer);
    res.status(200).send("Message published.");
  } catch (err) {
    console.error(err);
    res.status(500).send(err);
    return Promise.reject(err);
  }
};

我猜测此函数设置为使用 Node 8 运行时,因为在 Node 10 中添加了对异步迭代器的支持。Pub/Sub 库自 2.0 以来仅支持 Node 10 及更高版本,因此提高 Firebase 函数的运行时版本应该有所帮助:

https://firebase.google.com/docs/functions/manage-functions#set_nodejs_version

很遗憾,我没有足够的分数来询问有关原始问题的更多详细信息,但希望这对您有所帮助!