如何使用云功能处理CSV并返回前端



我正在尝试使用云功能和Firebase存储来实现以下功能:

  1. 用户将CSV上传到前端
  2. 我将CSV保存到Firebase存储
  3. 云功能被触发
  4. cloud函数对CSV进行一些处理并创建一个新的CSV
  5. 新CSV保存到Firebase存储,并向前端发送一个响应,详细说明读取新CSV的位置

如何使用云功能实现这一点?我应该通过HTTP请求来触发函数,而不是使用云存储来触发函数吗?

处理此问题的过程如下:

  1. 首先将CSV作为数据blob/文件从客户端上传到用户上传目录
  2. 完成后,使用blob/文件的引用路径调用云函数OnCall
  3. Cloud函数加载存储项,并将其检查为CSV,根据硬编码或提供的任何特定参数对其进行解码
  4. 将新CSV保存到新的存储路径或覆盖它,然后:
  5. 生成下载URL并将其交给客户端,或者
  6. 将CSV内容作为响应直接传递给客户端(大小限制适用(

您可以使用onRequest来执行此操作,但最好将onCall用于客户端的上下文。此外,存储不支持Firebase Storage和Node,而是依赖于Google-Cloud-Storage模块、链接源以及两个强烈建议用于Node/js环境的CSV解析器。

来源:

  • https://firebase.google.com/docs/storage/web/upload-files#upload_from_a_blob_or_file
  • https://firebase.google.com/docs/functions/callable#call_the_function
  • https://cloud.google.com/storage/docs/reference/libraries
  • https://www.npmjs.com/package/csv-parse
  • https://www.npmjs.com/package/csv

最新更新