javascript - 使用 Express 部署时出现 Firebase 功能错误
问题描述
我有一个在后端使用 Firebase 的 Express 应用程序,我正在尝试部署此功能:
const functions = require('firebase-functions');
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send(`Test Function`);
});
exports.app = functions.https.onRequest(app);
但是,当我输入firebase deploy
命令时,控制台中的部署会挂在这里:
=== Deploying to 'foodbankexpress-54df5'...
i deploying database, storage, firestore, functions, hosting
i database: checking rules syntax...
+ database: rules syntax for database foodbankexpress-54df5-default-rtdb is valid
i firebase.storage: checking storage.rules for compilation errors...
+ firebase.storage: rules file storage.rules compiled successfully
i firestore: reading indexes from firestore.indexes.json...
i cloud.firestore: checking firestore.rules for compilation errors...
+ cloud.firestore: rules file firestore.rules compiled successfully
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
+ functions: required API cloudfunctions.googleapis.com is enabled
+ functions: required API cloudbuild.googleapis.com is enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (49.39 KB) for uploading
i storage: latest version of storage.rules already up to date, skipping upload...
+ firestore: deployed indexes in firestore.indexes.json successfully
i firestore: latest version of firestore.rules already up to date, skipping upload...
+ functions: functions folder uploaded successfully
i hosting[foodbankexpress-54df5]: beginning deploy...
i hosting[foodbankexpress-54df5]: found 5 files in public
+ hosting[foodbankexpress-54df5]: file upload complete
i database: releasing rules...
+ database: rules for database foodbankexpress-54df5-default-rtdb released successfully
+ storage: released rules storage.rules to firebase.storage
+ firestore: released rules firestore.rules to cloud.firestore
i functions: updating Node.js 14 function app(us-central1)...
它挂起,然后我必须终止部署。我查看了 Firebase 控制台中的功能日志,这是它给我的错误:
{"@type":"type.googleapis.com/google.cloud.audit.AuditLog","authenticationInfo":{"principalEmail":"tylerdukedev@gmail.com"},"requestMetadata":{"callerIp":"73.129.233.103","callerSuppliedUserAgent":"FirebaseCLI/9.20.0,gzip(gfe),gzip(gfe)","requestAttributes":{"time":"2021-10-13T16:14:51.463038Z","auth":{}},"destinationAttributes":{}},"serviceName":"cloudfunctions.googleapis.com","methodName":"google.cloud.functions.v1.CloudFunctionsService.UpdateFunction","authorizationInfo":[{"resource":"projects/foodbankexpress-54df5/locations/us-central1/functions/app","permission":"cloudfunctions.functions.update","granted":true,"resourceAttributes":{}}],"resourceName":"projects/foodbankexpress-54df5/locations/us-central1/functions/app","request":{"updateMask":"name,sourceUploadUrl,entryPoint,runtime,httpsTrigger,labels,environmentVariables","function":{"httpsTrigger":{},"sourceUploadUrl":"https://storage.googleapis.com/gcf-upload-us-central1-59a7be26-a95d-441e-a19b-97f26081d584/3c5db291-43a2-416f-a4fa-29a3a85d4a7c.zip?GoogleAccessId=service-736202788738@gcf-admin-robot.iam.gserviceaccount.com&Expires=1634143488&Signature=DEMC0z0rMoBopd7TY9s8kuF3Vbe7h1DakSLlsHo%2F9rDJYc12lT9qeMB1uEZo3%2BNFhFEM4t9hp77vcBfByzJAvAoiChyv6N2qXift4%2BppQktRWfebyUPwf7v3PP7EWIrw7sxhrQfuTZZ7laht03OFj1o%2FVqTDzSSmspRFihsMNkL%2BUKPZZBOMpv02g0QxLY6%2F2BjhJDT3Q36o2cnCPPjbnS9%2B3rG94Lx8FG4vF3cucJLcnE2OnUdlAU0F1Xpk8ujWAAoBP%2Bq1URTsvOZptkVheanYWikSiNV81aL1EH1pAuwRk5SJljANt%2FYiF2fVTUdETus5Nhn9ATbwFmdFdiG%2FzA%3D%3D","name":"projects/foodbankexpress-54df5/locations/us-central1/functions/app","runtime":"nodejs14","entryPoint":"app","labels":{"deployment-tool":"cli-firebase"}},"@type":"type.googleapis.com/google.cloud.functions.v1.UpdateFunctionRequest"},"resourceLocation":{"currentLocations":["us-central1"]}}
非常感谢任何帮助,因为我是 Firebase 的新手并在其上部署应用程序。
这是我package.json
文件functions/
夹中的文件:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "14"
},
"main": "index.js",
"dependencies": {
"firebase-admin": "^9.8.0",
"firebase-functions": "^3.14.1"
},
"devDependencies": {
"firebase-functions-test": "^0.2.0"
},
"private": true
}
这是我的firebase.json
文件:
{
"hosting": {
"public": "public",
"rewrites": [{
"source": "**",
"function": "app"
}]
},
"functions": {
"source": "functions"
},
"database": {
"rules": "database.rules.json"
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"storage": {
"rules": "storage.rules"
},
"emulators": {
"auth": {
"port": 9099
},
"functions": {
"port": 5001
},
"firestore": {
"port": 8080
},
"database": {
"port": 9000
},
"hosting": {
"port": 5000
},
"pubsub": {
"port": 8085
},
"storage": {
"port": 9199
},
"ui": {
"enabled": true
}
}
}
此外,如果我尝试使用firebase deploy --only functions
它,它也会在它到达时挂起:
i functions: updating Node.js 14 function app(us-central1)
解决方案
推荐阅读
- docker - 如何从 docker 容器内部向该容器的外部主机名/端口发送请求?
- matlab - 用 MatLab 求解这个微分方程组
- c++ - 两个 std::vector 读取访问冲突的联合
- excel - 如果列包含非数字字段,如何创建错误消息 - VBA
- php - Wordpress RSS 提要仅下载或 err 403
- javascript - 我是否以正确的方式使用 .then() ?
- c# - How to correctly extract the directory from the registry key "ImagePath"?
- android - Android Manifest merger failed after adding module dependency 'com.google.android.gms:play-services-location:16.0.0'"
- c - 如何通过逐个读取字符来计算多位数字的乘法
- c# - x-requestid 如何填充?