2017-07-26 50 views
0

我正在使用firebase云端函数创建一个令牌生成器,并且我想使用https触发器来创建令牌,但是我需要在调用url的过程中包含数据。我知道这是可能的,但我不一定知道如何去做。如何使用firebase https触发器功能

我需要这个,所以我可以为我的函数中的某些变量设置值。

所以最终的URL可能看起来像这样的伪代码:

https://tokengen/identity=/room=

这里,身份和房间是两个值我想包括用于variales调用函数时。

所以要重申,

我知道你可以使用请求数据: exports.token = functions.https.onRequest((request, response) => {

,但我怎么包括与HTTPS调用一起的数据,包括作为变量。一个例子将不胜感激。同任何答案,建议或参考一样。

编辑:

这里是更新后的代码,

exports.tokenGenerator = functions.https.onRequest((request, response) => { 
const { identity, roomName } = request.query; 

const AccessToken = require('twilio').jwt.AccessToken; 
const VideoGrant = AccessToken.VideoGrant; 

const twilioAccountSid = '1xxxxxxxxxx'; 
const twilioApiKey = '1xxxxxxxxxx'; 
const twilioApiSecret = '1xxxxxxxxxx'; 



function generateToken(identity, roomName) { 
    const videoGrant = new VideoGrant({ 
room: roomName 
}); 

    const token = new AccessToken(twilioAccountSid, twilioApiKey, twilioApiSecret); 
    token.addGrant(videoGrant); 
    token.identity = identity; 

    return token.toJwt(); 

} 

    response.send(token.toJwt()); 

}); 

当我使用的url返回Error: could not handle the request

+0

查看这里的例子:https://github.com/firebase/functions-samples/tree/master/delete-unused-accounts-cron它显示了如何包括和访问查询的例子 –

回答

1

你可以做这样的事情 -

https://yourFB.cloudfunctions.net/token?identity=12&room=12 

你可以使用它ke -

exports.token = functions.https.onRequest((request, response) => { 
    const { identity, room } = request.query; 
    ... 
}); 

希望这会有所帮助。

+0

嗨,米仍然有点麻烦。我收到错误无法处理请求。您介意查看代码吗?我认为这与处理回应有关。我将把编码中的代码包含在问题中。 – Stefan

+0

嘿,对不起,延迟,你可以告诉我你的完整的'url',另外需要注意的是你使用'twilio'这是外部服务,你必须在付费的firebase帐户 – grgmo

+0

你是什么意思的“使用付费的Firebase帐户“您是否需要付费帐户才能使用云端功能?另外这里是https://us-central1-videochattest-dbd0d.cloudfunctions.net/tokenGenerator?identity=12&room=12 – Stefan