使用 Firebase 触发器部署云函数时出现部署错误

时间:2021-02-10 15:45:24

标签: firebase flutter google-cloud-functions firebase-cloud-messaging

我正在尝试创建一个 Cloud 函数,该函数在创建新文档时向用户发送 Firebase 云消息。不知何故,我无法将该功能部署到 Firebase。

这是我的 index.js:

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

exports.sendAll = functions.region("europe-west3").firestore
    .document("NewsCard/{docId}")
    .onCreate((snapshot) => {
      const title = snapshot.get("Title");
      const subject = snapshot.get("Text");

      const payload = {
        notification: {
          title: title,
          body: subject,
          sound: "default",
        },
      };

      return admin.messaging().sendToTopic("Announcement", payload);
    });

这是我输入 firebase deploy 时得到的错误:

✔  functions: Finished running predeploy script.
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
✔  functions: required API cloudbuild.googleapis.com is enabled
✔  functions: required API cloudfunctions.googleapis.com is enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (64.26 KB) for uploading
✔  functions: functions folder uploaded successfully
i  functions: updating Node.js 12 function sendAll(europe-west3)...
⚠  functions[sendAll(europe-west3)]: Deployment error.
...
Error: Functions did not deploy properly.

是什么导致了这个问题?我在互联网上的某个地方读到,firestore 路径 .document("NewsCard/{docId}") 可能是错误的。但我不知道用什么来代替。

这是我的 Firestore: Firestore

1 个答案:

答案 0 :(得分:1)

自己想出来的。貌似是node的问题。有关详细信息,请参阅 #3120。将 Node 降级到 14 有帮助。