Firebase 具有云函数的动态回调端点

Firebase 具有云函数的动态回调端点,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,当用户触发一个函数时,会有一个POST请求发送给合作伙伴。在正文中,我需要包含一个具有Id的唯一端点回调URL,以便他们可以向我发送与特定用户链接的状态更新。我怎样才能做到这一点?我知道如何设置静态端点,但不是为每个请求创建新的端点。正如Doug在上面的评论中所说,您不需要为每个不同的id创建新的URL(即新端点)。您只能部署一个(公开一个端点),并且在云函数中,您可以从对象及其属性中提取id的值,如下所示: exports.myWebhook = functions.https.onReque

当用户触发一个函数时,会有一个POST请求发送给合作伙伴。在正文中,我需要包含一个具有Id的唯一端点回调URL,以便他们可以向我发送与特定用户链接的状态更新。我怎样才能做到这一点?我知道如何设置静态端点,但不是为每个请求创建新的端点。

正如Doug在上面的评论中所说,您不需要为每个不同的
id
创建新的URL(即新端点)。您只能部署一个(公开一个端点),并且在云函数中,您可以从对象及其属性中提取
id
的值,如下所示:

exports.myWebhook = functions.https.onRequest((req, res) => {

    const urlArray = req.originalUrl.split('/');

    console.log(urlArray);
    console.log(urlArray[1]);

    const id = urlArray[1]; 
    //Do whatever you need with id
    //.....

    //If you want to test that it works with a browser, you can send it back as a response to the browser
    res.send(urlArray[1]);

});
然后使用以下URI调用此云函数:



请注意,也可以从请求正文中提取值,请参阅。

您的确切问题是什么?如何在云功能发出的POST请求主体中包含id?或者,如何设置要通过回调URL调用的端点?为什么每个请求都需要一个全新的端点?您不能将现有URL用于已部署的函数吗?@RenaudTarnec我需要帮助创建回调URL(如endpoint//callback),其中Id对于每个新的post请求都是唯一的。因此,当收到响应时,我知道哪个状态更新属于特定用户。@DougStevenson使用现有URL无法区分哪个状态更新属于正确的用户。HTTP提供了将参数传递给函数的方法。这就是回调函数唯一识别自身的方式。非常感谢@RenaudTarnec的帮助。我已经完全做到了你之前描述的事。问题就出在这里:导出此云函数会给我一个静态url:而在POST body请求中包含该url毫无意义,因为没有可供合作伙伴服务器使用的附加id。您上面描述的使用/id/callback正是我所需要的-我可以将它添加到url中吗?谢谢«可以将其添加到url之后,它将工作»:是,它将工作。给我一个电话,试试用浏览器打电话。如我的回答所示,我在CF URL的末尾添加了/id/callback。@chetbaker很高兴我能提供帮助!您可以接受并投票表决答案,请参阅。谢谢