Skip to content

Commit ea9f221

Browse files
committed
[Fix] Change combine operator to run in background😅
1 parent f7e456e commit ea9f221

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

Sources/SHFirestoreService/FirestoreService.swift

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)