fixing it by just using setdata instead of worrying about add document

This commit is contained in:
talksik
2021-12-20 20:30:38 -08:00
parent f663e3a0da
commit c0b898c2e6
4 changed files with 9 additions and 6 deletions
+1
View File
@@ -7,6 +7,7 @@
import Foundation import Foundation
import Firebase import Firebase
import FirebaseFirestore
import FirebaseFirestoreSwift import FirebaseFirestoreSwift
struct User: Identifiable, Codable { struct User: Identifiable, Codable {
@@ -75,7 +75,7 @@ class FirestoreService {
func createUser(user: User, completion: @escaping((_ state: ServiceState) -> ())) { func createUser(user: User, completion: @escaping((_ state: ServiceState) -> ())) {
do { do {
let _ = try db.collection(Collection.users.rawValue).addDocument(from: user) let _ = try db.collection(Collection.users.rawValue).document(user.id!).setData(from: user)
completion(ServiceState.success("user created")) completion(ServiceState.success("user created"))
} catch { } catch {
@@ -106,7 +106,7 @@ struct AddBasicInfoView: View {
Button { Button {
var updatedUser = self.authSessionStore.user var updatedUser = self.authSessionStore.user
updatedUser?.avatar = Avatars.avatarSystemNames[self.selectedAvatarIndex] updatedUser?.avatar = Avatars.avatarSystemNames[self.selectedAvatarIndex]
updatedUser?.nickname = self.nickname updatedUser?.nickname = self.nickname
print("attempting to save information \(updatedUser)") print("attempting to save information \(updatedUser)")
@@ -114,7 +114,7 @@ struct AddBasicInfoView: View {
self.addInfoViewModel.updateUser(currUser: updatedUser!) { self.addInfoViewModel.updateUser(currUser: updatedUser!) {
self.navigationStack.push(InnerCircleView()) self.navigationStack.push(InnerCircleView())
} }
} }
} label: { } label: {
Text("Save") Text("Save")
.fontWeight(.heavy) .fontWeight(.heavy)
@@ -27,11 +27,13 @@ final class PhoneVerificationViewModel : ObservableObject {
self.firestoreService.getUser(userId: userId) {[weak self] resultingUser in self.firestoreService.getUser(userId: userId) {[weak self] resultingUser in
print("user that was received from get: \(resultingUser?.id)") print("user that was received from get: \(resultingUser?.id)")
if resultingUser == nil {// if empty, create user - 1 result set cost..prolly higher cost if resultingUser == nil {// if empty, create user
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("creating new user with this object: \(newUser)")
self?.firestoreService.createUser(user: newUser) { res in self?.firestoreService.createUser(user: newUser) { res in
print(res)
completion(res) completion(res)
} }
} else { // if not, change last logged in value } else { // if not, change last logged in value