Firebase云功能在云构建部署后停止工作
我正在使用Cloud Build部署我的firebase项目(托管和云功能),该项目由github repo中的分支提交触发。部署成功,站点正常工作,但部署后云功能不会运行。它们甚至不会在被调用时显示在日志中,因此没有错误 我在UI中单击一个按钮,调用一个云函数,将一些数据保存到实时数据库中。调用函数的代码在try-catch中运行,catch代码运行。云函数的日志没有显示任何内容——该函数甚至没有运行。然后,当我从笔记本电脑而不是通过cloud build在本地部署项目时,单击按钮就会运行cloud函数,数据会保存到数据库中,日志表明该函数已被调用。但是,当我从cloud Build部署时,从前端触发事件时,不会调用任何云函数 只有当项目由云构建部署时,函数才会在调用时不运行。我想知道这是否可能是权限问题 前端代码:Firebase云功能在云构建部署后停止工作,firebase,google-cloud-functions,google-cloud-build,Firebase,Google Cloud Functions,Google Cloud Build,我正在使用Cloud Build部署我的firebase项目(托管和云功能),该项目由github repo中的分支提交触发。部署成功,站点正常工作,但部署后云功能不会运行。它们甚至不会在被调用时显示在日志中,因此没有错误 我在UI中单击一个按钮,调用一个云函数,将一些数据保存到实时数据库中。调用函数的代码在try-catch中运行,catch代码运行。云函数的日志没有显示任何内容——该函数甚至没有运行。然后,当我从笔记本电脑而不是通过cloud build在本地部署项目时,单击按钮就会运行cl
const createTeam = (payload) => {
return async (dispatch, getState, getFirebase) => {
debugger;
const createTeam = getFirebase().functions().httpsCallable("createTeam");
console.log("create team===>", createTeam);
try {
console.log("about to run");
await createTeam(payload);
dispatch(
sendNotification({
severity: "success",
message: "Team Created",
isOpen: true,
})
);
} catch (e) {
dispatch(
sendNotification({
severity: "error",
message: "An error occurred and team was not created.",
isOpen: true,
})
);
}
};
};
生成文件:
steps:
- name: "gcr.io/cloud-builders/npm"
dir: "functions"
args: ["install"]
# Install
- name: "gcr.io/cloud-builders/npm"
args: ["install"]
# Build
- name: "gcr.io/cloud-builders/npm"
args: ["run", "build"]
# Deploy
- name: "gcr.io/$PROJECT_ID/firebase"
args: ["deploy", "--project=$PROJECT_ID"]
从部署日志中:
Hosting URL: xxxx
Project Console: xxxx
✔ Deploy complete!
✔ hosting[agile-boost]: release complete
i hosting[agile-boost]: releasing new version...
✔ hosting[agile-boost]: version finalized
i hosting[agile-boost]: finalizing version...
✔ functions[launchAssessments(us-central1)]: Successful update operation.
✔ functions[createTeam(us-central1)]: Successful update operation.
✔ functions[sendParticipantEmailWhenAssessmentOpens(us-central1)]: Successful update operation.
✔ functions[completeAssessments(us-central1)]: Successful update operation.
✔ functions[refreshMetricCategoryAvg(us-central1)]: Successful update operation.
✔ functions[saveParticipantAnswer(us-central1)]: Successful update operation.
✔ functions[updateParticipant(us-central1)]: Successful update operation.
✔ functions[closeAssessmentsWhenTeamIsDeleted(us-central1)]: Successful update operation.
✔ functions[getParticipantsData(us-central1)]: Successful update operation.
✔ functions[createAccount(us-central1)]: Successful update operation.
✔ functions[addParticipantToAssessment(us-central1)]: Successful update operation.
✔ functions[createAssessment(us-central1)]: Successful update operation.
✔ functions[reviseAssessmentMetrics(us-central1)]: Successful update operation.
✔ functions[refreshMetricQuestionAvg(us-central1)]: Successful update operation.
✔ functions[updateParticipantWhenTeamParticipantUpdates(us-central1)]: Successful update operation.
✔ functions[refreshMetricTagAvg(us-central1)]: Successful update operation.
✔ functions[updateMetricsWhenParticipantStatusChanges(us-central1)]: Successful update operation.
✔ functions[addNewTeamParticipantToActiveAssessments(us-central1)]: Successful update operation.
✔ functions[getSurveyData(us-central1)]: Successful update operation.
i functions: scheduler job firebase-schedule-completeAssessments-us-central1 is up to date, no changes required
i functions: scheduler job firebase-schedule-launchAssessments-us-central1 is up to date, no changes required
✔ pubsub: required API pubsub.googleapis.com is enabled
✔ scheduler: required API cloudscheduler.googleapis.com is enabled
i pubsub: ensuring required API pubsub.googleapis.com is enabled...
i scheduler: ensuring required API cloudscheduler.googleapis.com is enabled...
i functions: updating Node.js 10 function completeAssessments(us-central1)...
i functions: updating Node.js 10 function launchAssessments(us-central1)...
i functions: updating Node.js 10 function getParticipantData(us-central1)...
i functions: updating Node.js 10 function getParticipantsData(us-central1)...
i functions: updating Node.js 10 function closeAssessmentsWhenTeamIsDeleted(us-central1)...
i functions: updating Node.js 10 function updateParticipantWhenTeamParticipantUpdates(us-central1)...
i functions: updating Node.js 10 function updateMetricsWhenParticipantStatusChanges(us-central1)...
i functions: updating Node.js 10 function sendParticipantEmailWhenAssessmentOpens(us-central1)...
i functions: updating Node.js 10 function addNewTeamParticipantToActiveAssessments(us-central1)...
i functions: updating Node.js 10 function saveParticipantAnswer(us-central1)...
i functions: updating Node.js 10 function getSurveyData(us-central1)...
i functions: updating Node.js 10 function updateParticipant(us-central1)...
i functions: updating Node.js 10 function addParticipantToAssessment(us-central1)...
i functions: updating Node.js 10 function createAssessment(us-central1)...
i functions: updating Node.js 10 function createTeam(us-central1)...
i functions: updating Node.js 10 function createAccount(us-central1)...
i functions: updating Node.js 10 function reviseAssessmentMetrics(us-central1)...
i functions: updating Node.js 10 function refreshMetricQuestionAvg(us-central1)...
i functions: updating Node.js 10 function refreshMetricTagAvg(us-central1)...
i functions: updating Node.js 10 function refreshMetricCategoryAvg(us-central1)...
✔ database: rules for database xxxx released successfully
i database: releasing rules...
✔ hosting[agile-boost]: file upload complete
i hosting: uploading new files [4/6] (66%)
i hosting: hashing files [34/35] (97%)
i hosting: hashing files [34/35] (97%)
i hosting[agile-boost]: found 35 files in build
i hosting[agile-boost]: beginning deploy...
✔ functions: functions folder uploaded successfully
i functions: packaged functions (52.61 KB) for uploading
i functions: preparing functions directory for uploading...
✔ functions: required API cloudbuild.googleapis.com is enabled
✔ functions: required API cloudfunctions.googleapis.com is enabled
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
✔ database: rules syntax for database agile-boost is valid
i database: checking rules syntax...
✔ functions: Finished running predeploy script.
> tsc
> functions@ build /workspace/functions
Running command: npm --prefix "$RESOURCE_DIR" run build
> tslint --project tsconfig.json
> functions@ lint /workspace/functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
i deploying database, functions, hosting
=== Deploying to 'xxxx'...
gcr.io/agile-boost/firebase:latest
Status: Downloaded newer image for gcr.io/agile-boost/firebase:latest
Digest: sha256:063a10dfecc2b3bb4245316fb89ae1588f594bb8bb6e950ecf6a9488015e20bb
38ee9b020816: Pull complete
ddf8c3713c7d: Pull complete
9819791ca1ba: Pull complete
19c9987a828c: Pull complete
40ba0f817ab5: Pull complete
8cdf70a16731: Pull complete
9819791ca1ba: Download complete
9819791ca1ba: Verifying Checksum
8cdf70a16731: Download complete
8cdf70a16731: Verifying Checksum
38ee9b020816: Download complete
38ee9b020816: Verifying Checksum
ddf8c3713c7d: Download complete
ddf8c3713c7d: Verifying Checksum
40ba0f817ab5: Download complete
40ba0f817ab5: Verifying Checksum
19c9987a828c: Download complete
19c9987a828c: Verifying Checksum
38ee9b020816: Waiting
ddf8c3713c7d: Waiting
9819791ca1ba: Waiting
38ee9b020816: Pulling fs layer
ddf8c3713c7d: Pulling fs layer
9819791ca1ba: Pulling fs layer
19c9987a828c: Pulling fs layer
40ba0f817ab5: Pulling fs layer
8cdf70a16731: Pulling fs layer
e5c5821cd889: Already exists
55abbc6cc158: Already exists
8439168fd8dc: Already exists
c159512f4cc2: Already exists
1b49aa113642: Already exists
4f250268ed6a: Already exists
latest: Pulling from agile-boost/firebase
Using default tag: latest
Pulling image: gcr.io/agile-boost/firebase
请编辑问题以显示部署代码和日志,以帮助我们观察您的观察结果。没有这些,一切都是猜测。理想情况下,我们应该能够使用您提供的信息重现行为。您如何观察“部署后云功能不会运行”?你确定日志是准确的吗?日志行看起来有问题。我希望“deploy complete”(部署完成)消息会最后出现。@DougStevenson,我在UI中单击一个按钮,调用一个云函数,该函数将一些数据保存到实时数据库中。调用函数的代码在try-catch中运行,catch代码运行。云函数的日志没有显示任何内容——该函数甚至没有运行。然后,当我从笔记本电脑而不是通过cloud build在本地部署项目时,单击按钮就会运行cloud函数,数据会保存到数据库中,日志表明该函数已被调用。所有这些信息以及函数的代码都应该在问题中。让我们非常清楚地了解您复制它所采取的步骤。部署中的日志看起来正常(除了顺序颠倒的事实)。您确定它部署在正确的位置吗?在Firebase控制台->函数->日志中,可能有云构建更新函数的新日志。有吗?