From 158b7277b01a20945b785b43ca9352bea966ec68 Mon Sep 17 00:00:00 2001 From: talksik Date: Tue, 21 Dec 2021 00:12:59 -0800 Subject: [PATCH] getting dispatch to main thread as close to the listener as possible to allow quickest change --- nirvana-ios/Repositories/FirestoreService.swift | 16 +++++++++------- nirvana-ios/Services/AuthSessionStore.swift | 8 +++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/nirvana-ios/Repositories/FirestoreService.swift b/nirvana-ios/Repositories/FirestoreService.swift index e569e9b..2329e6f 100644 --- a/nirvana-ios/Repositories/FirestoreService.swift +++ b/nirvana-ios/Repositories/FirestoreService.swift @@ -28,14 +28,16 @@ class FirestoreService { return } - guard let updatedOrNewUser = try? document.data(as: User.self) - else { - completion(nil) - print("Document data was empty. tried fetching updated user document in firestore service") - return + DispatchQueue.main.async { + guard let updatedOrNewUser = try? document.data(as: User.self) + else { + completion(nil) + print("Document data was empty. tried fetching updated user document in firestore service") + return + } + // up to date user + completion(updatedOrNewUser) } - // up to date user - completion(updatedOrNewUser) } } diff --git a/nirvana-ios/Services/AuthSessionStore.swift b/nirvana-ios/Services/AuthSessionStore.swift index a6f4f77..d63c749 100644 --- a/nirvana-ios/Services/AuthSessionStore.swift +++ b/nirvana-ios/Services/AuthSessionStore.swift @@ -136,11 +136,9 @@ final class AuthSessionStore: ObservableObject, SessionStore { // when we have a user get signed in, we can activate the listener for fetching the user's data to keep our auth session store always up to date for all of the ui self.firestoreService.getUserRealtime(userId: uid) {[weak self] realtimeUpdatedUser in - DispatchQueue.main.async { - if realtimeUpdatedUser != nil { - print("up to date user: \(realtimeUpdatedUser)") - self?.user = realtimeUpdatedUser - } + if realtimeUpdatedUser != nil { + print("up to date user: \(realtimeUpdatedUser)") + self?.user = realtimeUpdatedUser } }