我想知道处理多个并行“读取操作”的最佳方法是什么,即在 Firebase(基于 Java/Android)注册 SingleValueEventListener 并处理 onDataChanged 事件中的数据。比方说,我有三个不同的 DatabaseReference 位置,并且立即注册了三个侦听器,
- 是否有可能以某种方式捆绑整个事情,这样就只有一个请求?
- 实现“等待”的最佳方法是什么,以便在三个 DataChange 事件中的最后一个传递数据后立即执行代码,而不嵌套它们,以便在前一个事件中注册后续事件?
没有办法(也没有必要)将读取合并到单个请求中。 Firebase 数据库客户端通过单个连接管道传输请求。看我的回答在这里 http://stackoverflow.com/questions/35931526/speed-up-fetching-posts-for-my-social-network-app-by-using-query-instead-of-obse/35932786#35932786了解它的工作原理以及为什么它解决了大多数开发人员对往返性能的担忧。
在由以下处理的 JavaScript 代码中Promise.all()
。在 Android 中你可以使用Task
来完成同样的任务。道格·史蒂文森(Doug Stevenson)就此撰写了一系列精彩的博客文章,我建议阅读该文章以了解详细信息:part 1 https://firebase.googleblog.com/2016/09/become-a-firebase-taskmaster-part-1.html, part 2 https://firebase.googleblog.com/2016/09/become-a-firebase-taskmaster-part-2.html, part 3 https://firebase.googleblog.com/2016/09/become-a-firebase-taskmaster-part-3_29.html(其中涵盖使用Continuation
), part 4 https://firebase.googleblog.com/2016/10/become-a-firebase-taskmaster-part-4.html (which finally涵盖使用并行运行任务Tasks.whenAll(...)
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)