如何版本firebase可调用云函数端点?

np8igboo  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(123)

Firebase提供了HTTPS Callable function in Cloud Functions,它与HTTP函数类似但不完全相同。
使用http函数,可以通过将版本字符串添加到端点URL(例如,例如/api/v1/customers/3),或者在标头信息中包含自定义MIME类型的版本。

**问题:**firebase中版本可调用函数的正确方法是什么,以确保仍然依赖旧payload结构的客户端在部署参数更改的端点后不会中断?

s4chpxco

s4chpxco1#

AFAIK在Firebase的Cloud Functions文档中没有关于这一点的建议。
使用Callable Cloud Functions,您可以模拟您在问题中描述的API端点版本控制的两种方法。

“向端点URL添加版本字符串”

你可以有几个Callable Cloud Functions,它们的名称中有一个版本号,例如。例如:

exports.doSomethingInThebackEndv1 = functions.https.onCall((data, context) => {
  // ...
});

exports.doSomethingInThebackEndv2 = functions.https.onCall((data, context) => {
  // ...
});

“在Header信息中包含自定义MIME类型的版本”

当从前端调用函数时,可以将版本添加到传递给函数的对象中。例如使用JS SDK:

var doSomethingInThebackEnd = firebase.functions().httpsCallable('doSomethingInThebackEnd');
doSomethingInThebackEnd({ foo: 'bar', version: 1 })
  .then((result) => {...});

然后在后端:

exports.doSomethingInThebackEnd = functions.https.onCall((data, context) => {
  
  const version = data.version;

  // do different things depending on the version value

});

我承认它不是一个开箱即用的可扩展解决方案,并且在许多不同版本的情况下可能需要大量的手动操作。..

相关问题