addOnCompleteListener未使用云防火墙进行脱机调用

edm*_*ond 5 android google-cloud-firestore

我一直在使用新的云firestore数据库编写应用程序.虽然启用了离线持久性,但离线时很多东西都不能顺利运行,这很有效.例如,我做了以下事情:

ref.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    //Do something
                } else {
                    //Do another thing
                }

            }
        });
Run Code Online (Sandbox Code Playgroud)

但是,onComplete离线时永远不会调用该方法.一旦发生这种情况,我想关闭活动并显示一些Snachbar.但从未如此,活动仍然开放.我正在使用android studio模拟器.

谢谢

Gil*_*ert 9

写入数据库的操作被定义为在实际提交到后端后发出完成信号.因此,这可以按预期工作:离线时,它们不会发出完成信号.

请注意,即使您没有等待从删除完成任务,Firestore客户端也会在内部保证您可以读取自己的写入.

在大多数情况下,这意味着您不需要等待此任务完成.您有兴趣这样做有什么特别的原因吗?

  • 这是一个大问题,因为这意味着您无法在离线时将任务链接在一起.在离线时似乎无法获取新文档的文档ID,因为侦听器无法完成.这与firebase不同,在firebase中,您可以进行一系列本地更改,并在联机时进行同步. (6认同)