我正在使用firebase开发一个小型应用程序,我读到Persistence(true)
将使请求排队并在用户建立连接后执行它们。我在OnCompleteListener
中放置了一些代码,但是当用户离线时它们将不会执行,并且当用户在线时(重新启动应用程序之后),数据将变得错误。因此,我应该将代码移出OnCompleteListener()
吗?我什么时候应该使用OnCompleteListener
?
当我再次打开应用程序时。请求会执行,但不会触发OnCompleteListener。有人吗?
答案 0 :(得分:1)
正如您所发现的,当数据已被写入服务器上的数据库时,Firebase Realtime Database的OnCompleteListener
将触发,并且它们不会在应用程序重新启动时持久保存。
我通常使用OnCompleteListener
来检测写入问题,例如安全规则拒绝写入操作。
您还可以使用OnCompleteListener
例如将一条消息标记为“已传递”到数据库,但这需要您做更多的工作来处理应用程序重新启动的情况。
例如:每个客户端的写入均以调用API的顺序执行。因此,如果您在应用启动时执行令牌写入,并等待OnCompleteListener
成功执行该令牌,则可以确定在应用重启之前提交的写入已完成。