首页 > 解决方案 > Firebase CloudScheduler GCLOUD_PROJECT 错误

问题描述

这是我的功能,顶部是配置,底部是功能

const functions = require('firebase-functions')
const Stripe = require('stripe')

const axios = require('axios')
const admin = require('firebase-admin')
const serviceAccount = require('./serviceAccountKey.json')

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: 'https://c6dcc.firebaseio.com'
})

exports.detectConnect = functions.pubsub
 .topic('detectConnect')
 .onPublish(async message => {
    console.log('THIS THING RAN')
    return null
 })

这些是我的依赖

"dependencies": {
    "@google-cloud/storage": "^2.0.0",
    "axios": "^0.19.0",
    "child-process-promise": "^2.2.1",
    "firebase-admin": "~7.0.0",
    "firebase-functions": "^2.2.0",
    "mkdirp": "^0.5.1",
    "mkdirp-promise": "^5.0.1",
    "node-fetch": "^2.6.0",
    "request": "^2.88.0",
    "stripe": "^7.1.0"
},

但是firebase会抛出一个错误

Error: process.env.GCLOUD_PROJECT is not set.
at TopicBuilder (/srv/functions/node_modules/firebase-functions/lib/providers/pubsub.js:43:19)
at cloudFunctionNewSignature (/srv/functions/node_modules/firebase-functions/lib/cloud-functions.js:102:13)
at cloudFunction (/srv/functions/node_modules/firebase-functions/lib/cloud-functions.js:151:20)
at Promise.resolve.then (/srv/node_modules/@google-cloud/functions-framework/build/src/invoker.js:330:28)
at process._tickCallback (internal/process/next_tick.js:68:7)

使用schedule-functions时也会出现该错误

标签: node.jsfirebasegoogle-cloud-platformgoogle-cloud-scheduler

解决方案


如果您运行的是 Node 10,请确保您使用的是最新版本,firebase-tools并确保您使用 Firebase CLI 进行部署。从节点 10 开始,GCLOUD_PROJECT默认情况下环境变量不再可用。

如果您仍然遇到问题,请尝试将您的 Node 引擎更改package.json"8",看看您是否有更多的成功。


推荐阅读