방금 전까지는 데이터를 콘솔에서 직접 입력해줬는데
지금부턴 코드로 입력될 수 있게 해줍시다

FireStore랑 FireStoreSwift 패키지 추가해주고


프로필뷰를 만들어줌
그리고 로그인하면 프로필뷰가 뜨고, 네비게이션 바로 Settings View로 넘어가게 해줌!
(이거 처음 구조바꿨을 때 계속 SettingsView가 먼저 떴는데 여러번 시뮬레이터 돌리다보니까 ProfileView가 먼저 뜨게 바뀜
이제 해줘야할 건 로그인을 하고 나면 프로필 데이터가 데이터베이스에 저장 되야함

뷰모델에서 signIn할 때 처리를 해주면 될 거 같은데!!
이 로직을 처리해줄 UserManager를 따로 파줍시다
import Foundation
import FirebaseFirestore
import FirebaseFirestoreSwift
final class UserManager {
static let shared = UserManager()
private init() { }
func createNewUser(auth: AuthDataResultModel) async throws {
var userData: [String: Any] = [
"user_id" : auth.uid,
"is_anonymous" : auth.isAnonymous,
"date_created" : Timestamp(), //Date() is Possible but Firebase's Timestap is more general
]
if let email = auth.email {
userData["email"] = email
}
if let photoURL = auth.photoUrl {
userData["photo_url"] = photoURL
}
try await Firestore.firestore().collection("users").document(auth.uid).setData(userData, merge: false)
}
}
AuthDataResultModel에서 옵셔널한 데이터는 아래처럼 if let 으로 감싼다음에 키값을 가지고 userData에 넣어주면됨

뷰모델로 돌아와서 signIn 메소드에 방금 작성한 메소드 추가!

오케이~! 콜렉션 추가 잘 됩니다
getUser하기


프로필 뷰모델의 load도 바꿔주면서 유저 정보들을 get할 수 있게 되었습니다