防止因飞行前请求而两次调用Firebase函数
我有一个用React编写的javascript web应用程序,它使用Firebase SDK调用在Node 8中编写的Firebase云函数。为简单起见,代码如下所示: API index.js防止因飞行前请求而两次调用Firebase函数,firebase,http,google-cloud-functions,Firebase,Http,Google Cloud Functions,我有一个用React编写的javascript web应用程序,它使用Firebase SDK调用在Node 8中编写的Firebase云函数。为简单起见,代码如下所示: API index.js module.exports.test = functions.https.onCall((data, context) => { return 'Finished' }) 反应代码 app.functions().httpsCallable('test')().then(console
module.exports.test = functions.https.onCall((data, context) => {
return 'Finished'
})
反应代码
app.functions().httpsCallable('test')().then(console.log)
代码本身工作得很好,但是当查看日志时,我可以看到两个调用
这似乎来自浏览器在实际呼叫前发出的CORS飞行前请求
我是否为这次飞行前请求调用收费,我如何防止它(如果有)?是否有任何标题或设置可以添加到客户端或函数端,以确保我的函数调用配额基本上减半?可能重复@zkohi这确实符合我所经历的场景,我将编辑我的问题,因为我更希望禁用飞行前请求,因为我不希望对这些呼叫收费。参考资料为
在JavaScript客户端中,这些请求触发CORS选项飞行前
。我不知道飞行前请求调用是否收费。但我认为飞行前的请求总是被触发和收费的。啊,我没有找到这个文档。非常感谢。作为后续行动,我想飞行前的请求会因为实例的冷启动而延迟。这是否意味着所有后续请求永远不会因冷启动而延迟,并且日志中显示的实例调用时间将始终反映执行该函数所花费的时间?(正如您在我的计时中看到的,我有优化问题,希望缩小冷启动和非冷启动的范围)我认为日志中显示的实例调用时间将始终反映仅执行功能所花费的时间。