Skip to content

Commit 15235b7

Browse files
committed
fix: fcmToken이 없어도 로그인을 성공하도록 수정
1 parent e8bea23 commit 15235b7

6 files changed

Lines changed: 15 additions & 14 deletions

File tree

Application/DevLogData/Sources/DTO/AuthDataResponse.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public struct AuthDataResponse {
1414
public let email: String?
1515
public let providers: [String]
1616
public let providerID: String
17-
public let fcmToken: String
17+
public let fcmToken: String?
1818
public let accessToken: String?
1919

2020
public init(
@@ -23,7 +23,7 @@ public struct AuthDataResponse {
2323
email: String?,
2424
providers: [String],
2525
providerID: String,
26-
fcmToken: String,
26+
fcmToken: String? = nil,
2727
accessToken: String? = nil
2828
) {
2929
self.uid = uid

Application/DevLogInfra/Sources/Extension/FirebaseAuthUser+.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import DevLogData
1212
extension FirebaseAuth.User {
1313
func makeResponse(
1414
providerID: AuthProviderID,
15-
fcmToken: String,
15+
fcmToken: String? = nil,
1616
accessToken: String? = nil
1717
) -> AuthDataResponse {
1818
return AuthDataResponse(

Application/DevLogInfra/Sources/Service/SocialLogin/AppleAuthenticationServiceImpl.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,8 @@ final class AppleAuthenticationServiceImpl: AuthenticationService {
9090
try await result.user.link(with: appleCredential)
9191
}
9292

93-
let fcmToken = try await messaging.token()
94-
9593
logger.info("Successfully signed in with Apple")
96-
return result.user.makeResponse(providerID: .apple, fcmToken: fcmToken)
94+
return result.user.makeResponse(providerID: .apple)
9795
} catch {
9896
logger.error("Failed to sign in with Apple", error: error)
9997
throw error

Application/DevLogInfra/Sources/Service/SocialLogin/GithubAuthenticationServiceImpl.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,9 @@ final class GithubAuthenticationServiceImpl: NSObject, AuthenticationService {
7272
try await result.user.link(with: credential)
7373
}
7474

75-
let fcmToken = try await messaging.token()
76-
7775
logger.info("Successfully signed in with GitHub")
7876
return result.user.makeResponse(
7977
providerID: .gitHub,
80-
fcmToken: fcmToken,
8178
accessToken: accessToken
8279
)
8380
} catch {

Application/DevLogInfra/Sources/Service/SocialLogin/GoogleAuthenticationServiceImpl.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,8 @@ final class GoogleAuthenticationServiceImpl: AuthenticationService {
5151
try await changeRequest.commitChanges()
5252
}
5353

54-
let fcmToken = try await messaging.token()
55-
5654
logger.info("Successfully signed in with Google")
57-
return result.user.makeResponse(providerID: .google, fcmToken: fcmToken)
55+
return result.user.makeResponse(providerID: .google)
5856
} catch {
5957
logger.error("Failed to sign in with Google", error: error)
6058
throw error

Application/DevLogInfra/Sources/Service/UserServiceImpl.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ final class UserServiceImpl: UserService {
5656
userField["createdAt"] = FieldValue.serverTimestamp()
5757
}
5858

59-
var settingField = ["fcmToken": response.fcmToken]
59+
var settingField: [String: Any] = [:]
60+
61+
if let fcmToken = response.fcmToken {
62+
settingField["fcmToken"] = fcmToken
63+
}
6064

6165
// 깃헙 로그인 시 추가 정보 저장
6266
if response.providerID == "github.com", let accessToken = response.accessToken {
@@ -73,7 +77,11 @@ final class UserServiceImpl: UserService {
7377
merge: true
7478
)
7579
async let infoUpdate: Void = infoRef.setData(userFieldSnapshot, merge: true)
76-
async let tokensUpdate: Void = tokensRef.setData(settingFieldSnapshot, merge: true)
80+
async let tokensUpdate: Void? = {
81+
guard !settingFieldSnapshot.isEmpty else { return nil }
82+
try await tokensRef.setData(settingFieldSnapshot, merge: true)
83+
return nil
84+
}()
7785

7886
let settingsDocument = try await settingsRef.getDocument()
7987
var settingsField: [String: Any] = [

0 commit comments

Comments
 (0)