无法在 Firebase 云功能中部署 PubSub 功能

Posted

技术标签:

【中文标题】无法在 Firebase 云功能中部署 PubSub 功能【英文标题】:Not able to deploy PubSub function in firebase cloud functions 【发布时间】:2020-09-04 09:19:19 【问题描述】:

我正在尝试部署 PubSub 功能:

exports.sendReminder 
    = functions.pubsub.schedule('0 6 * * *').timeZone('Asia/Kolkata').onRun((context) => 
        console.log('Wake up! It\'s 6AM');
        return null;
    
);
    在我第一次尝试部署该功能之前,云计划 API 已被禁用。 它是自动启用的。 PubSub 也已启用。

预期行为

由于项目已启用 Cloud Scheduler API 和 PubSub。理想情况下,部署函数时不应出现任何错误。该错误确实提到了几分钟后尝试。但是我启用 PubSub 和 Cloud Scheduler API 已经 24 小时了。

实际行为

> eslint .

+  functions: Finished running predeploy script.
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
+  functions: required API cloudfunctions.googleapis.com is enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (41.54 KB) for uploading
+  functions: functions folder uploaded successfully
i  functions: uploading functions in project: sendReminder(us-central1)
i  functions: creating Node.js 8 function sendReminder(us-central1)...
i  scheduler: ensuring required API cloudscheduler.googleapis.com is enabled...
i  pubsub: ensuring required API pubsub.googleapis.com is enabled...
+  scheduler: required API cloudscheduler.googleapis.com is enabled
+  pubsub: required API pubsub.googleapis.com is enabled

Error: HTTP Error: 403, Cloud Scheduler API has not been used in the project before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudscheduler.googleapis.com/overview then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

版本信息

节点:v12.10.0

firebase 功能:8.2.0

firebase 工具:8.2.0

firebase 管理员:8.2.0

【问题讨论】:

如果 Firebase CLI 未按您预期的方式运行,请联系 Firebase 支持寻求帮助。 support.google.com/firebase/contact/support 我添加了一个问题。 github.com/firebase/firebase-functions/issues/691 【参考方案1】:

终于成功了。这很奇怪,因为我启用了所有必要的 API。它不起作用的可能原因是我在中断期间初始化了部署并且某些权限失败。因此,由于权限而被拒绝。

在过去的几天里,我一直在与 firebase 团队保持联系。我们尝试了不同的东西。我按照 Firebase 支持人员的指示解决此问题的步骤:

    Disabled 已启用 Schedular API 并在控制台中再次启用它:https://console.cloud.google.com/apis/library/cloudscheduler.googleapis.com

    使用控制台创建了一个虚拟 cron 作业:https://cloud.google.com/scheduler/docs/quickstart#create_a_job

    使用 Firebase CLI 部署了该函数,并且可以正常工作。

【讨论】:

我试过这个没有成功,虽然我没有同样的问题,我的只是似乎说一切都很好,然后在最后一分钟部署失败

以上是关于无法在 Firebase 云功能中部署 PubSub 功能的主要内容,如果未能解决你的问题,请参考以下文章

由于权限错误,无法部署 Firebase 云功能

迁移到打字稿后,Firebase 云功能无法正常工作

无法部署“pubsub”云功能

如何从 Firebase Cloud 功能中提取已部署的云功能 [重复]

由于 CORS 限制,无法使用 firebase 在本地进行测试

阅读已部署的 Firebase 云功能源 [重复]