Final (18)
신고기능
이전에는 textfield로 간단하게 했다면 이번에는 만들어둔 VC에 전달하게 한다.
VM만 만들어 둔다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class ReportViewModel {
private let manageManager = ManageManager()
var managePublisher = PassthroughSubject<Void, Error>()
func addReportCount(uid: String, storeAddress: String, title: String, completion: @escaping () -> Void) {
manageManager.getSpecificReview(uid: uid, storeAddress: storeAddress, title: title) { [weak self] querySnapshot, error in
if let error = error {
self?.managePublisher.send(completion: .failure(error))
}
if let documents = querySnapshot?.documents {
for doc in documents {
let id = doc.documentID
let data = doc.data()
guard let reportCount = data[db_reportCount] as? Int else { return }
let count = [db_reportCount: reportCount + 1]
reviewCollection.document(id).setData(count, merge: true)
self?.managePublisher.send(())
completion()
}
}
}
}
}
애플계정 로그아웃 문제 관리
현재 로그아웃을 눌렀을때 로그아웃이 되어 메인페이지로 가는것이 아니라, 첫화면으로 돌아가는 이슈가 발생한다.
이제 로그아웃이 제대로 되었을때 넘기기로 결정
1
2
3
4
5
6
7
8
9
10
11
12
func signOut(completion: @escaping () -> Void) {
signManager.signOutCurrentUser { [weak self] result in
switch result {
case .success:
self?.logoutPublisher.send(.success(()))
completion()
case .failure(let error):
self?.logoutPublisher.send(.failure(error))
completion()
}
}
}
기존에는 completion이 없었는데, completion Handler를 추가함으로써 로그아웃이 되었을때 처리하는것으로 변경하였다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.