我如何确认客户端(android 应用程序)数据已由 GCP 云功能完成处理?

How do I acknowledge client-side ( android app) that data has been done processing by GCP cloud functions?

我正在尝试创建一个允许用户将图片上传到云存储和云功能的应用程序 return 文件/或 JSON 在处理用户上传的图片后响应。

下面简单介绍一下整个过程: 用户上传数据->数据上传到云存储->云函数处理->结果导出到云存储/或returnJSON响应用户端设备(app)

下一步是在客户端下载数据(或获得 JSON 响应),一旦数据被处理并导出到云存储。

我的主要问题是,我应该如何确认客户端(应用程序)数据已在云功能端完成处理?

我应该在这里使用什么服务?我仅限于使用 GCP 云功能(python 环境)。

谢谢。

服务器应用程序无法使用标准 HTTP/HTTPS 协议向客户端应用程序发送 请求。要实现你想要的,你需要在服务器和客户端之间建立一个套接字连接,这样服务器就可以随时向客户端发送数据。

解决方案 1

如果可能,您可以使用 firebase realtime database,它将为您进行套接字连接:

云函数处理完数据后,将响应写入实时数据库中的特定节点(如果要在客户端下载,响应可能包含上传的数据URL)。

您可以参考 this guide to setup firebase admin sdk for your server app in your preferred language (python is supported), and to this one to get started. This guide 将向您展示如何在实时数据库上保存数据

在客户端,您listen更改该特定节点以获得云功能响应(每当云功能在实时数据库中写入响应时,您的客户端将收到写入的数据)。

解决方案 2

您可以使用 Cloud messaging 在您的函数完成其工作时向您的客户端应用程序发送 silent/data-only 通知。

解决方案 3

您可以为服务器应用程序使用 python WebSocket 库,为客户端应用程序使用 android WebSocket 库。 (但我不推荐你第三种解决方案)