fixing updating current user log in: but not completely done

This commit is contained in:
talksik
2021-12-19 17:38:33 -08:00
parent 98e43dfde0
commit 4dc7b422e9
4 changed files with 30 additions and 27 deletions
@@ -18,20 +18,18 @@ class FirestoreService {
private var db = Firestore.firestore() private var db = Firestore.firestore()
func getUser(userId: String) -> User? { func getUser(userId: String, completion: @escaping((_ user: User?) -> ())) {
let docRef = db.collection(Collection.users.rawValue).document(userId) let docRef = db.collection(Collection.users.rawValue).document(userId)
var user:User? = nil
docRef.getDocument { (document, error) in docRef.getDocument { (document, error) in
if let document = document, document.exists { if let document = document, document.exists {
user = try? document.data(as: User.self) let returnedUser = try? document.data(as: User.self)
completion(returnedUser)
} else { } else {
user = nil print("user doesn't exist")
completion(nil)
} }
} }
return user
} }
func createUser(user: User) { func createUser(user: User) {
+2 -2
View File
@@ -143,8 +143,7 @@ final class AuthSessionStore: ObservableObject, SessionStore {
} }
private func getAndSetEnvironmentUserDetails(userId: String) { private func getAndSetEnvironmentUserDetails(userId: String) {
let firestoreUser: User? = self.firestoreService.getUser(userId: userId) self.firestoreService.getUser(userId: userId) {firestoreUser in
// if we get a user back, then set this to our instance to allow UI to get published with all user details // if we get a user back, then set this to our instance to allow UI to get published with all user details
if firestoreUser != nil { if firestoreUser != nil {
// TODO: prolly useless since we never set up a background thread for the rest of this code before // TODO: prolly useless since we never set up a background thread for the rest of this code before
@@ -153,6 +152,7 @@ final class AuthSessionStore: ObservableObject, SessionStore {
} }
} }
} }
}
} }
extension UIApplication { extension UIApplication {
@@ -14,7 +14,7 @@ struct OnboardingTrioView: View {
var body: some View { var body: some View {
VStack { VStack {
TabView { TabView {
OnboardingTemplateView(imgName: "undraw_through_the_park_lxnl", mainLeadingActText: "Be", mainHighlightedActText: "yourself", mainTrailingActText: "again.", subActText: "No more consuming endless feeds, media, fomo, anxiety...focus on you and be more present.") OnboardingTemplateView(imgName: "undraw_through_the_park_lxnl", mainLeadingActText: "Be", mainHighlightedActText: "yourself", mainTrailingActText: "again.", subActText: "No more endless feeds, media, fomo, anxiety...focus on you and be more present.")
OnboardingTemplateView(imgName: "undraw_connection_b-38-q", mainLeadingActText: "Be picky about your ", mainHighlightedActText: "inner circle.", mainTrailingActText: "", subActText: "You are who you hang out with. We kept things minimal because less is more...and we care.") OnboardingTemplateView(imgName: "undraw_connection_b-38-q", mainLeadingActText: "Be picky about your ", mainHighlightedActText: "inner circle.", mainTrailingActText: "", subActText: "You are who you hang out with. We kept things minimal because less is more...and we care.")
@@ -24,19 +24,24 @@ final class PhoneVerificationViewModel : ObservableObject {
// TODO: set all in a transaction or batch write // TODO: set all in a transaction or batch write
// get user - 1 result set cost // get user - 1 result set cost
var user = firestoreService.getUser(userId: userId) self.firestoreService.getUser(userId: userId) {[weak self] resultingUser in
print("user that was received from get: \(user?.id)") print("user that was received from get: \(resultingUser?.id)")
if user == nil {// if empty, create user - 1 result set cost..prolly higher cost
if resultingUser == nil {// if empty, create user - 1 result set cost..prolly higher cost
print("creating new user with id: \(userId)") print("creating new user with id: \(userId)")
let newUser = User(id: userId, phoneNumber: phoneNumber) let newUser = User(id: userId, phoneNumber: phoneNumber)
print("verify the id stayed the same: \(newUser.id)") print("verify the id stayed the same: \(newUser.id)")
firestoreService.createUser(user: newUser) self?.firestoreService.createUser(user: newUser)
} else { // if not, change last logged in value } else { // if not, change last logged in value
var user = resultingUser
// assign to nil so that server can fill it in // assign to nil so that server can fill it in
user!.lastLoggedInTimestamp = nil user!.lastLoggedInTimestamp = nil
let _ = firestoreService.updateUser(user: user!) let res = self?.firestoreService.updateUser(user: user!)
print(res)
}
} }
} }
} }