繁体   English   中英

Firebase 云功能部署失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM