调用 Firebase 侦听器来运行

马修·范兰丁汉

我正在尝试确定是否在我的 android 应用程序中下载数据。我可以通过使该方法在下载数据时返回 true 来做到这一点,但在所有其他代码完成运行之前似乎不会调用侦听器(这意味着它会等到您的代码暂停)。所以我想知道是否有办法“强制”调用这些听众?也许通过在不同的线程中创建侦听器?这会起作用还是浪费时间?我已经尝试在主线程上休眠几秒钟,但这似乎也没有做到。如果它不起作用,你能解释一下这些监听器是什么时候被调用的吗?提前致谢。

要补充我的问题,我没有使用实时数据库。我了解实时触发器的工作原理,但我使用的是 Firestore,所以我只获取一次数据,而不是实时更新 :)

亚历克斯·马莫

正如您已经注意到的,处理读取和写入数据的 API 调用完全是asynchronous. 这意味着调用总是立即返回,而不会阻塞代码等待结果。结果会在一段时间后出现,只要他们准备好了,因为这可能需要一些时间。根据您的连接速度和状态,在该数据可用之前可能需要几百毫秒到几秒。所以 Firebase 已经在使用另一个线程(主线程除外)来完成工作。

在应用程序的主线程上调用同步函数可能会无限期地冻结应用程序,这是一个糟糕的用户体验。在 Android 上,它也可能因应用程序无响应 (ANR) 对话框而软崩溃。

Doug Stevenson 在他的帖子中解释了您需要了解的有关 Fireabse 异步行为的所有信息以及在处理 Firebase 时需要做/避免的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章