我们什么时候应该使用OnCompleteListener()进行查询

时间:2019-05-05 11:20:02

标签: android firebase firebase-realtime-database

我正在使用firebase开发一个小型应用程序,我读到Persistence(true)将使请求排队并在用户建立连接后执行它们。我在OnCompleteListener中放置了一些代码,但是当用户离线时它们将不会执行,并且当用户在线时(重新启动应用程序之后),数据将变得错误。因此,我应该将代码移出OnCompleteListener()吗?我什么时候应该使用OnCompleteListener

当我再次打开应用程序时。请求会执行,但不会触发OnCompleteListener。有人吗?

1 个答案:

答案 0 :(得分:1)

正如您所发现的,当数据已被写入服务器上的数据库时,Firebase Realtime Database的OnCompleteListener将触发,并且它们不会在应用程序重新启动时持久保存。

我通常使用OnCompleteListener来检测写入问题,例如安全规则拒绝写入操作。

还可以使用OnCompleteListener例如将一条消息标记为“已传递”到数据库,但这需要您做更多的工作来处理应用程序重新启动的情况。

例如:每个客户端的写入均以调用API的顺序执行。因此,如果您在应用启动时执行令牌写入,并等待OnCompleteListener成功执行该令牌,则可以确定在应用重启之前提交的写入已完成。