我正在为我的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}上创建新消息时,它将触发控制台,但即使我也无法部署
谢谢
答案 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}'
我将-
更改为_
,并且有效