Building Subscription Blogging App: Part 10 – Wrapping Up (2021, Xcode 12, Swift 5) – iOS
uid
를 유저 별 앱 아이디로 사용Purchases
API 호출func login(with appId: String, completion: @escaping(Bool) -> Void) {
Purchases.shared.logIn(appId) { [weak self] info, created, error in
guard
let entitlements = info?.entitlements,
let isEntitlementActive = entitlements.all["Premium"]?.isActive,
error == nil else {
print("Current user: \(appId): is Premium: false")
self?.premium.send(false)
completion(false)
return
}
print("Current user: \(appId): is Premium: \(isEntitlementActive)")
self?.premium.send(isEntitlementActive)
completion(isEntitlementActive)
}
}
func logout(completion: @escaping(Bool) -> Void) {
Purchases.shared.logOut { [weak self] _ , error in
guard
error == nil else {
completion(false)
return
}
self?.premium.send(false)
completion(true)
}
}
private func bind() {
userSession
.sink { [weak self] _ in
self?.fetchUser()
}
.store(in: &cancellables)
userSession.send(Auth.auth().currentUser)
guard let uid = Auth.auth().currentUser?.uid else { return }
IAPService.shared.login(with: uid) { _ in }
}
AuthManager
가 이니셜라이즈될 때 호출되는 코드uid
를 통해 구독 상황인지를 확인func login(email: String, password: String) {
Auth.auth().signIn(withEmail: email, password: password) { [weak self] result, error in
guard
let user = result?.user,
error == nil else { return }
self?.userSession.send(user)
IAPService.shared.login(with: user.uid) { _ in }
print("Firebase Login Did Succeed")
}
}
uid
를 통해 로그인 가능RevenueCat
이 제공하는 대시 보드의 내용을 보면 과연 제대로 된 설정을 했는지 의문.사실상 강의 영상과는 거의 다른 앱이 되어 버렸는데, 사실 더 재미있었기 때문에 대만족!