具有云功能的动态回调端点

时间:2019-05-13 12:14:03

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

当用户触发功能时,会有POST请求发送给合作伙伴。在正文中,我需要包括一个带有ID的唯一终结点callbackURL,以便他们可以向我发送与特定用户链接的状态更新。我该怎么做?我知道如何设置静态端点,但不能为每个请求创建新的端点。

1 个答案:

答案 0 :(得分:1)

如Doug在上面的评论中所述,您不需要为每个不同的id使用新的URL(即新的终结点)。您只能部署一个HTTP Cloud Function(公开一个端点),并且在Cloud Function中,您需要从Request对象的originalUrl属性中提取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调用此Cloud Function:

https://us-central1-yourprojectname.cloudfunctions.net/myWebhook/id/callback


请注意,也可以从请求正文中提取值,请参见https://firebase.google.com/docs/functions/http-events?authuser=0#read_values_from_the_request