如何在 Firebase 的云功能中添加版本

Posted

技术标签:

【中文标题】如何在 Firebase 的云功能中添加版本【英文标题】:How to add version in cloud function for firebase 【发布时间】:2018-01-14 15:28:34 【问题描述】:

您好,我创建了一个云功能getUsers。可以像https://xyz.cloudfunctions.net/getUsers一样访问它

exports.getUsers = functions.https.onRequest((request, response) => 

);

我需要对函数进行一些更改并希望保持相同的函数名称。我想在云功能中添加版本,这样就可以这样访问了

https://xyz.cloudfunctions.net/getUsers/v2

在 Firebase 的云功能中执行此操作的方法是什么?

【问题讨论】:

【参考方案1】:

Cloud Functions 没有内置版本控制。最接近默认 URL 的方法是将版本写入函数名称:getUsers_v2

如果您使用 Firebase 托管为您的 Cloud Functions 提供友好的 URL,您当然可以map each individual function to the URL you want。

【讨论】:

您可以将 Express 应用程序配置为能够为 HTTP 端点使用您想要的任何路径。如果您想在路径中放置版本字符串,请随意这样做。 ***.com/questions/45517040/…【参考方案2】:

一种方法是创建自己的路径处理程序。当然,您可以使用 express,但我选择不为此使用它。

exports.getUsers = functions.https.onRequest((request, response) => 

   const path = request.path;               // '/getUsers/v2'

   const version = path.split('/')[2];      // ['', 'getUsers', 'v2']

   switch ( version ) 

      case 'v1': // Handle for v1; 
             break;

      case 'v2': // Handle for v2; 
             break;
   
);

这将暴露您的端点直到https://xyz.cloudfunctions.net/getUsers,但对于尾随版本或 url 中的任何其他内容,您可以使用这样的处理程序。

【讨论】:

以上是关于如何在 Firebase 的云功能中添加版本的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 的云功能 - 获取当前用户 ID [重复]

如何在 firebase 托管的 webapp 中获取 firebase 函数 URL?

Firebase 的云功能:“错误:无法处理请求”

如何取消删除谷歌云功能

导出 Firestore 备份数据的云功能。使用 firebase-admin 或 @google-cloud/firestore?

具有实时数据库触发器的 Firebase 云功能:如何更新源节点?