我在 android 中使用带有一些复杂数据的 firebase。我需要保存参考资料,但我的 zip 操作或我处理 RX 的整体方式遇到了问题。
我想创建一个新A object
的信息B
,并更新我B object
的信息以获取有关创建的信息A
。当 firebase 操作都成功后,我将返回Single<A>
val singleA = firebaseCall(A("ABC", bKey))
val singleB = singleA.flatMap{ a -> firebaseCall(B(aKey)) }
return Single.zip(singleA, singleB, BiFunction { a, b -> a })
通过 logcat 时,我可以看到它SingleA
被订阅了两次,并且两次推送到 firebase。我想避免这种情况!
那么,当 B 依赖于 A 时,如何在 A 和 B 上使用 zip 函数?并且没有 A 被执行两次?