为了在线支持,我目前正在将数据存储到我的应用程序中的方式从sqlite切换到Firestore。即使这是一个很大的飞跃,也意味着我现在的架构会有很多变化。我想知道是否有一种方法来模拟Adapter类(就像SQlite中使用的那样),这样我就可以保持这些更改最小,至少通过重新定义我的方法名称和返回类型,并且避免在我需要的地方显式地写入每个文档读/写。
在我所谓的"Adapter类似类“中,我最初尝试的是在”适配器类“的构造函数中将文档的数据加载到一个专用对象中。但是它显然不起作用,因为Firebase查询是异步的,这里解释了:
我想做什么是可能的吗?还是我注定要重做每件事?
发布于 2020-06-23 16:07:45
简短的回答:是的,但你不应该
如果你绝对必须:
通过使用CountDownLatch创建自己的Future实现,可以将异步调用包装在Firebase中。是Java接口类似于JavaScript中的承诺,它允许您传递异步计算的“未来结果”,直到您绝对需要它为止。
检查这个StackOverflow的答案以获得一个示例实现。
然后,您将使用这个包装器实现“类似适配器的类”,它将返回一个Future,类中的方法将返回future.get()。这个调用阻塞执行它的线程,当Future解析时,调用计算为包含在Future中的值(“解包装”)。
这就是为什么你不该:
https://stackoverflow.com/questions/62537443
复制相似问题