我遇到一个奇怪的问题。
我正在尝试使用2 wildcards
,但不断出现错误消息:
!函数:无法创建函数modRemoveReplies
HTTP错误:400,请求有错误
有趣的是,我还有另一个export
,它使用几乎相同的通配符,但不会产生错误...
这是我收到错误的代码:
exports.modRemoveReplies = functions.database
.ref('replies/{parent}/{postId}/flag_delete')
.onCreate(async (snapshot, context) => {
console.log("Test")
return true;
});
但是在我的函数文件中,我以前绝对没有错误地调用此代码:
exports.removeReply = functions.database
.ref('replies/{parent}/{postId}/score')
.onUpdate(async change => {
const score = change.after.val();
if (score === -4) {
return change.after.ref.parent.remove();
}
});
几乎是相同的,所以我理解为什么会出错...有什么想法吗?上面的错误消息是唯一显示的信息。
编辑:
使用--debug
标志运行后,输出为:
[2019-05-30T20:55:47.156Z] <<< HTTP RESPONSE 400 different = X-Origin, Referer,Origin,Accept-Encoding,content-type = application / json; charset = UTF-8,date = Thu,2019年5月30日20:55:43 GMT,server = ESF, cache-control = private,x-xss-protection = 0,x-frame-options = SAMEORIGIN, x-content-type-options = nosniff,alt-svc = quic =“:443”; ma = 2592000; v =“ 46,44,43,39”,accept-ranges =无,连接=关闭
[2019-05-30T20:55:47.156Z] <<< HTTP RESPONSE BODY代码= 400, message =请求有错误,状态= INVALID_ARGUMENT, details = [@ type = type.googleapis.com / google.rpc.BadRequest, fieldViolations = [字段=运行时,描述=运行时字段不能为 空。]]
答案 0 :(得分:2)
我遇到了此问题,因为我的路径不正确。我是这样的:
functions.firestore
.document('/companies/{companyID}/tickets/')
.onCreate((change, context) => {
// code here.
})
代替:
functions.firestore
.document('/companies/{companyID}/tickets')
.onCreate((change, context) => {
// code here.
})
请注意路径末尾的斜杠。
答案 1 :(得分:2)
就我而言,我不得不改变
export const onRatingCreated = functions.firestore.document('Programs/{programId}/Ratings/').onCreate((doc, context) => {
// ...
});
对此
export const onRatingCreated = functions.firestore.document('Programs/{programId}/Ratings/{ratingId}').onCreate((doc, context) => {
// ...
});
所以,以Document通配符结尾的问题为我修复了。