node.js - 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)
解决方案
如果您运行的是 Node 10,请确保您使用的是最新版本,firebase-tools
并确保您使用 Firebase CLI 进行部署。从节点 10 开始,GCLOUD_PROJECT
默认情况下环境变量不再可用。
如果您仍然遇到问题,请尝试将您的 Node 引擎更改package.json
为"8"
,看看您是否有更多的成功。
推荐阅读
- java - Java程序中偶数索引的问题
- python - 将excel转换为csv后无法读取头部
- android - com.firebase.ui.auth.data.model.UserCancellationException:Android 中使用 Firebase 身份验证的未知错误
- r - tidyverse:所有可能的变量组合的列联表
- sql - SQL - 从其他字段中查找最新值(每个用户,在出现之间)
- php - 如何解决php中的对等证书错误
- python - 将非常大的 csv 转换为镶木地板
- vim - 如何在 Vim 中重新启用语法高亮?
- c++ - 添加一个计时器并在 c++ linux 中更新它
- python - 如何循环浏览此页面上的下拉菜单以从网络上抓取每种产品的规格和价格?