Skip to content

Commit

Permalink
message投稿時、mainThreadで画面更新するように修正
Browse files Browse the repository at this point in the history
  • Loading branch information
boardguy1024 committed Oct 21, 2023
1 parent dd7a28b commit 1ae62c4
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
Binary file not shown.
9 changes: 6 additions & 3 deletions TwitterSwiftUI/Core/TabBar/Conversations/ChatViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@ class ChatViewModel: ObservableObject {
init(user: User) {
self.user = user

fetchMessages()
Task {
await fetchMessages()
}
}

@MainActor
func sendButtonTapped(with message: String, completion: @escaping () -> Void) async throws {
do {
try await sendMessage(message, to: user)
Expand All @@ -29,6 +32,7 @@ class ChatViewModel: ObservableObject {
}
}

@MainActor
func fetchMessages() {
guard let currentUser = AuthService.shared.currentUser,
let currentUid = currentUser.id,
Expand All @@ -49,7 +53,7 @@ class ChatViewModel: ObservableObject {

let messageOwner: User = fromId == currentUid ? currentUser : self.user
// 本来であれば、データの整合性のために取得が望ましいが、チャットのやりとりは 自分と self.Userが確定なので
// fetchせず、持っているUserデータを使う
// fetch(kingfisherはcacheを使うため、どちらでも良いが。。)せず、持っているUserデータを使う
// Firestore.firestore().collection("users").document(fromId).getDocument { snapshot, _ in
// let user = User.decode(dic: snapshot?.data())
// self.messages.append(.init(user: user, dic: messageData))
Expand All @@ -60,7 +64,6 @@ class ChatViewModel: ObservableObject {
}


@MainActor
private func sendMessage(_ messageText: String, to user: User) async throws {
guard let currentUid = AuthService.shared.userSession?.uid, let userId = user.id else { return }
let messageRef = Firestore.firestore().collection("messages")
Expand Down

0 comments on commit 1ae62c4

Please sign in to comment.