可调用云函数比 HTTP 函数更好吗?

Posted

技术标签:

【中文标题】可调用云函数比 HTTP 函数更好吗?【英文标题】:Are Callable Cloud Functions better than HTTP functions? 【发布时间】:2018-09-03 15:58:30 【问题描述】:

引入了最新的Firebase Update 可调用函数。我的问题是this new way 是否比"old" http triggers 更快,是否更安全。

我没有这方面的专业知识,但我认为 HTTP 与 HTTPS 可能会有所不同。

这对我来说很有趣,因为如果可调用函数更快,它们就有这个优势,但它们的缺点在于灵活性的本质:其他来源无法访问它们。

如果可调用函数在速度或安全性方面没有优势,我认为没有理由将其切换。

【问题讨论】:

【参考方案1】:

可调用函数与 HTTP 函数完全相同,只是提供的 SDK 会为您做一些您不必做的额外工作。这包括在客户端:

    使用请求处理 CORS(针对 Web 客户端) 发送经过身份验证的用户的令牌 发送设备实例ID 序列化您在客户端传递的输入对象 在客户端反序列化响应对象

并且在函数的后端:

    验证用户令牌并从中提供用户对象 反序列化函数中的输入对象 在函数中序列化响应对象

这一切都在文档中说明。如果您可以自己完成所有这些工作,请不要使用可调用对象。如果您希望这项工作自动完成,那么可调用对象会很有帮助。

如果您需要直接控制 HTTP 协议的细节(方法、标头、内容主体),请不要使用可调用对象,因为它会隐藏所有这些细节。

使用可调用对象没有安全优势。没有速度改进。

【讨论】:

我非常感谢这个答案。我在文档中没有找到类似的东西,这就是我首先问的原因。我想你说的是"Callable functions are similar to other HTTP functions, with these additional features: With callables, Firebase Authentication and FCM tokens are automatically included in requests. The functions.https.onCall trigger automatically deserializes the request body and validates auth tokens."。我无法从中得出没有性能差异的结论。 我可以在本地调试吗? @LuisRuizFigueroa 现在可以看到***.com/a/59077802/3073272 有差价吗? 伟大的大纲。现在有一个安全优势,App Check,目前仅对可调用对象可用:firebase.google.com/docs/app-check/cloud-functions

以上是关于可调用云函数比 HTTP 函数更好吗?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 可调用云函数 CORS 错误

如何在 Firebase 可调用云函数上引发错误?

firebase - 从可调用云函数访问数据库时应用检查失败

在 Flutter 中返回 Null 的可调用云函数

使用 Firebase CLI shell 测试可调用的云函数

可调用函数支持缓存吗?