Firebase函数-HTTP错误:400,请求有错误

时间:2019-05-30 20:48:45

标签: javascript firebase firebase-realtime-database google-cloud-functions

我遇到一个奇怪的问题。

我正在尝试使用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 = [字段=运行时,描述=运行时字段不能为   空。]]

2 个答案:

答案 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通配符结尾的问题为我修复了。