我正在使用谷歌云功能作为 webhook 来接收来自 3rd 方服务的有效负载。通常,当此类服务向 webhook 发出请求时,它们期望 HTTP 200 作为确认。但是,使用如下的云功能设置(并且按照 google 的建议),当正在进行的处理发生时,请求服务会返回 408。
在这种情况下,第 3 方服务(在这种情况下是它的 cloudmailin,但同样适用于我尝试与之集成的任何 webhook)将重试请求,即使它已成功处理。
我的问题是:如何让云函数返回 200 并仍然继续异步处理?
//This will return a 408 even though the request is processed successfully
exports.emailIngest = functions.https.onRequest((request, response) =>
{
//return the promise from the firestore admin SDK as per google docs
return admin.auth().getUserByEmail(request.body.envelope.from).then((user) => {
console.log('Successfully fetched user data:', user.toJSON());
}).catch(function (error) {
console.log('Error fetching user data:', error);
});
});