[英]Firebase Cloud Functions fail to deploy
我正在尝试部署以下两个功能:
exports.increaseWaitinglistCounters = functions.database
.ref('waitinglists/$iid/$uid')
.onCreate(async () => {
await admin
.database()
.ref(`waitinglistCounters/$iid`)
.transaction((count) => {
return (count || 0) + 1;
});
});
exports.decreaseWaitinglistCounters = functions.database
.ref('waitinglists/$iid/$uid')
.onDelete(async () => {
await admin
.database()
.ref(`waitinglistCounters/$iid`)
.transaction((count) => {
return Math.max((count || 0) - 1, 0);
});
});
但是我一直遇到部署错误,我查看了 Google Cloud 日志,但找不到任何有用的东西。
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 13,
"message": "Failed to configure trigger providers/google.firebase.database/eventTypes/ref.delete@firebaseio.com (__gcf__.us-central1.decreaseWaitinglistCounters)"
},
"authenticationInfo": {
"principalEmail": "xxxxxx@gmail.com"
},
"serviceName": "cloudfunctions.googleapis.com",
"methodName": "google.cloud.functions.v1.CloudFunctionsService.CreateFunction",
"resourceName": "projects/xxxxxx/locations/us-central1/functions/decreaseWaitinglistCounters"
},
"insertId": "ilglgod1bk8",
"resource": {
"type": "cloud_function",
"labels": {
"project_id": "xxxxxx",
"region": "us-central1",
"function_name": "decreaseWaitinglistCounters"
}
},
"timestamp": "2021-02-04T16:10:10.853578Z",
"severity": "ERROR",
"logName": "projects/xxxxxxx/logs/cloudaudit.googleapis.com%2Factivity",
"operation": {
"id": "operations/xxxxxx",
"producer": "cloudfunctions.googleapis.com",
"last": true
},
"receiveTimestamp": "2021-02-04T16:10:11.326391635Z"
}
我的代码有什么问题? 当从父节点创建或删除节点时,我试图增加和减少计数器。
错误日志提到了您的第二个函数触发器的问题,我认为您应该在通配符的 ref 定义中将美元符号替换为大括号:
ref('waitinglists/{iid}/{uid}')
相关文档: https://firebase.google.com/docs/functions/database-events#specify_the_instance_and_path
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.