我正在使用: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个赞
这些操作跨越不同的服务,甚至可能跨越不同的可用区。没有办法让它们原子化。
虽然听从阿里的建议,从客户端回滚绝对可以降低风险,但是没有办法让这些操作原子化。但是到了某个时候就会出现客户端无法回滚的故障
对于不可避免的失败,最常见的方法是使您的代码在后面的操作失败时再次变得健壮,并偶尔进行清理。
添加回答
举报
0/150
提交
取消