将图像上传到存储并更新配置文件

时间:2019-04-18 10:08:55

标签: google-cloud-firestore firebase-storage

我有一个非常简单的用例,用户可以上传自己的个人资料图片,URL将保存在Firestore中相应用户的条目中。是否存在处理原子性问题的最佳实践?

比方说,用户上传图片,在此过程中,他失去连接或应用崩溃,结果将是存储中的文件,但用户数据中没有与该文件的连接(如果崩溃发生在上传,但在Firestore写入之前)。

我考虑过使用事务来执行此操作,或者考虑实现Cloud Function触发器,该触发器侦听存储并处理用户配置文件的更新。

也许甚至还有一种方法可以解决Firestore规则中所述的问题?

在我的具体应用中,我需要处理很多大图像,这就是为什么我想在客户端上处理尽可能多的东西,但仍要避免在数据库中包含巨大的“死”图像。

1 个答案:

答案 0 :(得分:0)

由于没有跨服务的事务,因此无法确保使用Firebase防止孤立图像或悬挂引用(取决于首先完成的写入)的方式。

该解决方案通常是由健壮的客户端代码(在悬挂引用的情况下)和具有定期删除孤立图像的脚本组成的。我还建议您首先测试问题的严重程度,尤其是如果您先写图像。

一种减少中断风险的解决方法是使用Cloud Functions。客户端上载到Cloud Functions,然后执行两次写入。由于Cloud Functions在服务器上运行,因此被中断的可能性要小得多。

另请参阅: