Jac*_*ler 31 node.js firebase google-cloud-functions
我正在尝试部署我的功能。我添加了第二个并重构了第一个,现在我无法部署。我尝试绕过 CI/CD 手动部署,但仍然出现错误。这是一个 2.0 函数,我确实运行了 tsc。自从我上次部署以来,我确实重新安装了 firebase-tools 包。除了我提到的以外,与它工作时没有什么不同。
\n以下是 的输出firebase deploy --only functions
:
i deploying functions\nRunning command: npm --prefix "$RESOURCE_DIR" run lint\n\n> lint\n> eslint --ext .js,.ts .\n\nRunning command: npm --prefix "$RESOURCE_DIR" run build\n\n> build\n> tsc\n\n\xe2\x9c\x94 functions: Finished running predeploy script.\ni functions: preparing codebase default for deployment\ni functions: ensuring required API cloudfunctions.googleapis.com is enabled...\ni functions: ensuring required API cloudbuild.googleapis.com is enabled...\ni artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...\n\xe2\x9c\x94 functions: required API cloudbuild.googleapis.com is enabled\n\xe2\x9c\x94 functions: required API cloudfunctions.googleapis.com is enabled\n\xe2\x9c\x94 artifactregistry: required API artifactregistry.googleapis.com is enabled\ni functions: Loading and anaylzing source code for codebase default to determine what to deploy\nServing at port 8907\n\nshutdown requested via /__/quitquitquit\n\n\nError: Functions codebase could not be analyzed successfully. It may have a syntax or runtime error\n
Run Code Online (Sandbox Code Playgroud)\n我的代码:
\n/* eslint-disable max-len */\nimport "dotenv/config";\nimport { initializeApp } from "firebase-admin/app";\nimport { getFirestore } from "firebase-admin/firestore";\nimport { onDocumentCreated, onDocumentDeleted } from "firebase-functions/v2/firestore";\n\nconst accountSid = process.env.TWILIO_ACCOUNT_SID;\nconst authToken = process.env.TWILIO_AUTH_TOKEN;\nconst twilioPhoneNumber = process.env.TWILIO_PHONE_NUMBER;\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst client = require("twilio")(accountSid, authToken);\n\nexport const sendSMSOnContactWrite = onDocumentCreated("/contact/{contactSubmissionId}", async (event) => {\n const data = event.data?.data();\n console.log(data);\n return await client.messages.create({\n // eslint-disable-next-line\n "body": `New contact submission from ${data?.name} at ${data?.email} with message: ${data?.message}. ${data?.name} said ${data?.hasWebsite} when asked if they have a website.${data?.hasWebsite === "yes" ? " Their website is at " + data?.websiteAddress : ""}`,\n "from": twilioPhoneNumber,\n "to": process.env.MY_PHONE_NUMBER,\n });\n});\n\nexport const sendSMSOnContentItemDelete = onDocumentDeleted("/websites/{websiteId}/content/{contentGroupId}/data/{contentId}", async (event) => {\n initializeApp();\n const db = getFirestore();\n const websiteDocRef = db.doc("websites/" + event.params.websiteId);\n const websiteDoc = await websiteDocRef.get();\n const websiteDocData = websiteDoc.data();\n if (!websiteDocData) {\n // TODO: Log error\n return;\n }\n const users = websiteDocData["users"];\n for (const userId of users) {\n const userDocRef = db.doc("users/" + userId);\n const userDoc = await userDocRef.get();\n const userDocData = userDoc.data();\n if (!userDocData) {\n // TODO: Log error\n return;\n }\n const deletionPreference = userDocData["preferences"]["deletion_sms"];\n if (deletionPreference) {\n const data = event.data?.data();\n console.log(data);\n return await client.messages.create({\n "body": `Content item with title ${data?.title} was deleted from website ${websiteDocData["url"]}`,\n "from": twilioPhoneNumber,\n "to": userDocData["phone_number"],\n });\n } else {\n return;\n }\n }\n});\n
Run Code Online (Sandbox Code Playgroud)\n
小智 12
它可能是由不同的原因引起的,要准确了解您的情况的问题是什么,请运行该--debug
选项。
所以它会导致类似的结果firebase deploy --only functions --debug
然后检查消息错误之前的最后一段:无法成功分析函数代码库
希望它会有所帮助。
就我而言,我必须将其移至const firestore = admin.firestore();
函数内部,而不是将其移至函数外部。
归档时间: |
|
查看次数: |
14626 次 |
最近记录: |