为什么我的opentok方法在firebase中不起作用?

问题描述 投票:0回答:1

我使用firebase函数,该函数会在触发时执行OpenTok SDK。该函数创建一个会话。我能够在本地服务器上成功创建会话,但是当我将其投入生产时(在Firebase中),会发生以下错误:创建会话时出错:错误:无法创建会话。错误:请求失败:错误:getaddrinfo EAI_AGAIN api.opentok.com:443在createSessionCallback(/srv/node_modules/opentok/lib/opentok.js:1125:16)在Request._callback(/srv/node_modules/opentok/lib/client.js:59:14)在self.callback(/srv/node_modules/request/request.js:185:22)在emitOne上(events.js:116:13)在Request.emit(events.js:211:7)在Request.onRequestError(/srv/node_modules/request/request.js:877:8)在emitOne(events.js:121:20)在ClientRequest.emit(events.js:211:7)在TLSSocket.socketErrorListener(_http_client.js:401:9)在emitOne上(events.js:116:13)该第三方SDK的其他方法(例如令牌生成)也可以在firebase上使用,但是createSession方法失败。你能帮我吗?

exports.dbUpdate = functions.database.ref('/test/{pushId}/text').onUpdate((change, context) => {
const beforeData = change.before.val(); // data before the write
const afterData = change.after.val();
if (beforeData == afterData){
console.log("Text did not change");
return null;
} 

opentok = new OpenTok("...", "...");
var sessionId;
opentok.createSession({mediaMode:"routed"}, function(error, session) {
if (error) {
console.log("Error creating session:", error)
token = "Failed";
} else {
sessionId = session.sessionId;
token = opentok.generateToken(sessionId);
}
});
return change.after.ref.parent.child('neuertest').set(token);

});
//The same code works on local server

问候,法鲁克

firebase firebase-realtime-database opentok tokbox
1个回答
0
投票

免费的Spark计划仅允许HTTP调用Google服务(请参见https://firebase.google.com/pricing/上的Cloud Functions)

您需要升级您的计划才能运行您的功能

© www.soinside.com 2019 - 2024. All rights reserved.