在云功能上部署功能错误,错误代码为13,消息为“ INTERNAL”

时间:2019-08-27 07:51:45

标签: firebase google-cloud-functions

我正在为我的App部署一个Firestore触发器onCreate,但是每次我要部署时,它总是错误

控制台始终显示代码13和消息“内部”

这就是控制台上出现的内容

{"@type":"type.googleapis.com/google.cloud.audit.AuditLog",
"status":{"code":13,"message":"INTERNAL"},
"authenticationInfo":{"principalEmail":"[My_EMAIL]"},
"requestMetadata":{"requestAttributes":{},"destinationAttributes":{}},
"serviceName":"cloudfunctions.googleapis.com",
"methodName":"google.cloud.functions.v1.CloudFunctionsService.UpdateFunction",
"resourceName":"projects/etalase/locations/us-central1/functions/onNewMessage"}

这是我在index.js上的代码

exports.onNewMessage = functions.firestore
  .document('/messages/{groupChatId}/{groupChatId}/{messageFeedItem}')
  .onCreate(async (snapshot, context) => {
    const doc = snapshot.data();

    console.log('------Message Created-----');
    console.log(doc);

    const idForm = doc.userID;
    const idTo = doc.sellerID;

    console.log('Message from : ', idForm);
    console.log('Message to : ', idTo);

  });

我希望它将部署,并且每次在{messageFeedItem}上创建新消息时,它将触发控制台,但即使我也无法部署

谢谢

5 个答案:

答案 0 :(得分:1)

您必须导入firebase函数

import functions = require('firebase-functions');

const functions = require('firebase-functions');

如果这样做,请检查您的package.json

答案 1 :(得分:1)

对于那些走这么远但仍然没有解决方案的人-这是我的情况

exports.fnName = functions.firestore
  .document('Collection/{collId}/SubCollection/{subCollId')
  .onUpdate((change, context) => {
    ...
});

在文档参考末尾注意缺少的'}。

这导致部署失败,客户端上显示以下内容

无法配置触发器提供程序

并在功能日志中包含以下内容

"status":{
  "code":13,
  "message":"INTERNAL"
},

答案 2 :(得分:0)

所以现在我可以通过更改目录来部署该功能

'messages / {groupChatId} / {groupChatId} / {messageFeedItem}'

进入

'messages / {groupChatId} / {groupChatId2} / {messageFeedItem}'

我推测您不能与通配符同名

答案 3 :(得分:0)

设置Node.js和Firebase CLI

在许多情况下,新功能和错误修复仅适用于 最新版本的Firebase CLI和firebase-functions SDK。 经常更新Firebase CLI和 包含这些命令的SDK 功能文件夹中的 Firebase项目:

npm install firebase-functions@latest firebase-admin@latest --save
npm install -g firebase-tools

答案 4 :(得分:0)

我的问题是因为我在通配符中使用了-字符

'chat/{abc-efg}'

我将-更改为_,并且有效