如何解决将Cloud Storage触发通知发送到客户端应用
我的React Native Expo应用程序使用从Cloud Storage存储桶中提取的图像。第一次获取图像后,我会缓存图像,因此不必每次都检索图像。但是,这些图像可能会不时更新,因此我想通知客户端相同的图像,以便可以自动更新特定图像。
我创建了一个云功能,当在云存储上上传/修改文件时触发。 (我也有一个Flask后端,但是无法在那儿集成它)。该功能看起来像这样
def image_update(event,context):
print('Event ID: {}'.format(context.event_id))
print('Event type: {}'.format(context.event_type))
print('Bucket: {}'.format(event['bucket']))
print('File: {}'.format(event['name']))
print('Metageneration: {}'.format(event['metageneration']))
print('Created: {}'.format(event['timeCreated']))
print('Updated: {}'.format(event['updated']))
return event['name']
我想将更新后的文件名(如您在上面看到的)返回给客户端,但是我不确定该怎么做。我尝试将获取/发布请求发送到http://REGION_NAME-PROJECT_ID.cloudfunctions.net/FUNC_NAME格式的URL(适用于HTTP函数,但这不是一个,所以不确定),但是它不起作用。
我如何(通过HTTP请求或类似的方式)通知客户端存储桶中的更新?
解决方法
如果听起来您正在寻找Object Finalize trigger,则每次写入存储桶中的文件时都会运行该{{3}}。在event['name']
字段中写入的文件的名称。
通知您的客户端更改应用程序的常用方法是通过Firebase Cloud Messaging。这样,即使用户没有积极使用该应用程序,您也可以向该应用程序发送消息。然后,该应用可以立即下载新图像,或者(更有可能)从用户的缓存中删除过时的图像,以在用户下次访问新版本时下载新版本。
或者,您可以将修改后的图像路径写入数据库(例如Cloud Firestore),然后在应用程序启动时从数据库加载修改后的图像列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。