일부 복잡한 데이터가있는 Android의 firebase를 사용하고 있습니다. 참조를 저장해야하고 우편 번호 작업이나 RX 전체를 처리하는 방식에 문제가 있습니다.stream1을 구독하는 .zip (stream1, stream2, BiFun)은 stream2가 stream1을 기반으로하는 경우 어떻게해야합니까?
특정 B
에 대한 정보가있는 A object
을 새로 만들고 B object
에 A
에 대한 정보가 업데이트되도록하고 싶습니다. 중포 기지 작업이 모두 성공적이었다 때 나는 로그 캣을 통과 할 때 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 })
내가 SingleA
두 번에 가입 얻을 수 있음을 알 수 반환하고, 중포 기지로 두 번 밀어 것입니다. 나는 이것을 피하고 싶다!
그래서 B가 A에 종속적 인 경우 A와 B에서 zip 함수를 어떻게 사용할 수 있습니까? A가 두 번 수행되지 않았습니까?
왜 당신이 그들을 압축해야합니까? A로부터의 방출은 flatMapped가되고 그냥 B – elmorabea
에 가입 할 수 있습니다. 메소드 서명은'Single '을 반환해야합니다. 그 이유는 – Yokich
입니다. 두 경우 모두 배출원이 동일하기 때문에 이중 가입을하게됩니다. 이는 firebaseCall (A "ABC", bKey)), flat하지만 맵핑을 원한다면 flatMapped으로 매핑 한 다음지도 연산자를 사용하십시오. – elmorabea