@@ -40,6 +40,7 @@ extension FirestoreService: FirestoreServiceProtocol {
4040 if case . get = endpoint. method {
4141 return collectionRef. getDocuments ( )
4242 . subscribe ( on: backgroundQueue)
43+ . receive ( on: backgroundQueue)
4344 . tryMap { snapshots in
4445 if snapshots. isEmpty {
4546 return [ ]
@@ -66,6 +67,7 @@ extension FirestoreService: FirestoreServiceProtocol {
6667 if case . get = endpoint. method {
6768 return documentRef. getDocument ( )
6869 . subscribe ( on: backgroundQueue)
70+ . receive ( on: backgroundQueue)
6971 . tryMap { snapshot in
7072 try snapshot. data ( as: D . self)
7173 }
@@ -88,6 +90,7 @@ extension FirestoreService: FirestoreServiceProtocol {
8890 if case . delete = endpoint. method {
8991 return documentRef. delete ( )
9092 . subscribe ( on: backgroundQueue)
93+ . receive ( on: backgroundQueue)
9194 . convertFirestoreServiceError ( )
9295 . eraseToAnyPublisher ( )
9396 }
@@ -98,6 +101,7 @@ extension FirestoreService: FirestoreServiceProtocol {
98101 return documentRef
99102 . updateData ( requestDTODictionary)
100103 . subscribe ( on: backgroundQueue)
104+ . receive ( on: backgroundQueue)
101105 . convertFirestoreServiceError ( )
102106 . eraseToAnyPublisher ( )
103107 }
@@ -108,6 +112,7 @@ extension FirestoreService: FirestoreServiceProtocol {
108112 return documentRef
109113 . updateData ( requestDictionary)
110114 . subscribe ( on: backgroundQueue)
115+ . receive ( on: backgroundQueue)
111116 . convertFirestoreServiceError ( )
112117 . eraseToAnyPublisher ( )
113118 } catch {
@@ -145,13 +150,15 @@ extension FirestoreService: FirestoreServiceProtocol {
145150 . document ( documentId)
146151 . setData ( requestDTODictionary)
147152 . subscribe ( on: backgroundQueue)
153+ . receive ( on: backgroundQueue)
148154 . convertFirestoreServiceError ( )
149155 . map { _ in return documentId }
150156 . eraseToAnyPublisher ( )
151157 } else {
152158 return collectionRef
153159 . addDocument ( data: requestDTODictionary)
154160 . subscribe ( on: backgroundQueue)
161+ . receive ( on: backgroundQueue)
155162 . map { $0. documentID }
156163 . convertFirestoreServiceError ( )
157164 . eraseToAnyPublisher ( )
@@ -165,13 +172,15 @@ extension FirestoreService: FirestoreServiceProtocol {
165172 . document ( documentId)
166173 . setData ( [ : ] )
167174 . subscribe ( on: backgroundQueue)
175+ . receive ( on: backgroundQueue)
168176 . convertFirestoreServiceError ( )
169177 . map { _ in return documentId }
170178 . eraseToAnyPublisher ( )
171179 } else {
172180 return collectionRef
173181 . addDocument ( data: [ : ] )
174182 . subscribe ( on: backgroundQueue)
183+ . receive ( on: backgroundQueue)
175184 . map { $0. documentID }
176185 . convertFirestoreServiceError ( )
177186 . eraseToAnyPublisher ( )
@@ -183,6 +192,7 @@ extension FirestoreService: FirestoreServiceProtocol {
183192 . document ( documentId)
184193 . setData ( from: requestDTO)
185194 . subscribe ( on: backgroundQueue)
195+ . receive ( on: backgroundQueue)
186196 . map { _ in return documentId }
187197 . convertFirestoreServiceError ( )
188198 . eraseToAnyPublisher ( )
@@ -192,6 +202,7 @@ extension FirestoreService: FirestoreServiceProtocol {
192202 return collectionRef
193203 . addDocument ( from: requestDTO)
194204 . subscribe ( on: backgroundQueue)
205+ . receive ( on: backgroundQueue)
195206 . map { $0. documentID }
196207 . convertFirestoreServiceError ( )
197208 . eraseToAnyPublisher ( )
@@ -215,6 +226,7 @@ extension FirestoreService: FirestoreServiceProtocol {
215226 }
216227 return collectionRef. getDocuments ( )
217228 . subscribe ( on: backgroundQueue)
229+ . receive ( on: backgroundQueue)
218230 . map { snapshots in
219231 if snapshots. isEmpty { return [ ] }
220232 return snapshots. documents. map { documentSnapshot in documentSnapshot. documentID }
@@ -243,6 +255,7 @@ extension FirestoreService: FirestoreQueryable {
243255 let query = makeQuery ( collectionRef)
244256 return query. getDocuments ( )
245257 . subscribe ( on: backgroundQueue)
258+ . receive ( on: backgroundQueue)
246259 . tryMap { querySnapshot in
247260 try querySnapshot. documents. map { snapshot in
248261 try snapshot. data ( as: D . self)
@@ -321,7 +334,10 @@ extension FirestoreService: FirestoreQueryable {
321334 promise ( . failure( FirestoreServiceError . decodingError ( error) ) )
322335 }
323336 }
324- } . eraseToAnyPublisher ( )
337+ }
338+ . subscribe ( on: backgroundQueue)
339+ . receive ( on: backgroundQueue)
340+ . eraseToAnyPublisher ( )
325341 }
326342}
327343
@@ -334,6 +350,8 @@ extension FirestoreService: FirestoreTransactional {
334350 ) -> AnyPublisher < Any ? , any Error > {
335351 return Firestore . firestore ( )
336352 . runTransaction ( updateBlock)
353+ . subscribe ( on: backgroundQueue)
354+ . receive ( on: backgroundQueue)
337355 . mapError { error in
338356 return FirestoreServiceError . failedTransaction ( error)
339357 } . eraseToAnyPublisher ( )
0 commit comments