为了账号安全,请及时绑定邮箱和手机立即绑定

如何同时完成 Firebase Storage Task 和 Firestore Task?

如何同时完成 Firebase Storage Task 和 Firestore Task?

紫衣仙女 2021-12-30 17:42:37
我正在使用:ref.putFile(file).addOnSuccessListener(taskSnapshot -> {    ref.getDownloadUrl().addOnSuccessListener(uri -> {        String downloadUrl = uri.toString();        Map<String, Object> map = new HashMap<>();        map.put("profilePic", downloadUrl);        uidDocRef.update(map);    });});将图像上传到 Firebase 存储。成功添加后,我使用downloadUrl来更新用户配置文件。问题是当我尝试写入 Firestore 时出现错误。图像被添加,但相应的 url 没有。我想做一些像同步更新这样的事情,它们是原子的:要么所有更新成功,要么所有更新失败。这个怎么做?
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

这些操作跨越不同的服务,甚至可能跨越不同的可用区。没有办法让它们原子化。

虽然听从阿里的建议,从客户端回滚绝对可以降低风险,但是没有办法让这些操作原子化。但是到了某个时候就会出现客户端无法回滚的故障

对于不可避免的失败,最常见的方法是使您的代码在后面的操作失败时再次变得健壮,并偶尔进行清理。


查看完整回答
反对 回复 2021-12-30
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号