Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
987a0b4
Feature(#135): Firebase Remote Config 메이 리뷰 반영
JaeminHwang49 Feb 24, 2026
6c880a1
:sparkles: Feature: Add Bitrise CI configuration for Android builds
SuHyeon00 Jan 25, 2026
e95186e
:sparkles: Feature: Upgrade Bitrise step versions for git-clone and g…
SuHyeon00 Jan 25, 2026
bb336af
:sparkles: Feature: Update Bitrise workflows to rename primary and re…
SuHyeon00 Jan 25, 2026
3b58666
:sparkles: Feature: Replace echo commands with envman for setting env…
SuHyeon00 Jan 25, 2026
9b92012
:sparkles: Feature: Update cache steps
SuHyeon00 Jan 25, 2026
d14a90b
:sparkles: Feature: Add script to setup google-services.json files fo…
SuHyeon00 Jan 25, 2026
e231f75
:sparkles: Feature: Upgrade restore and save gradle cache steps to ve…
SuHyeon00 Jan 25, 2026
9534567
:sparkles: Feature: Downgrade save-gradle-cache step to version 1 in …
SuHyeon00 Jan 25, 2026
230f62c
:sparkles: Feature: Add conditional android-sign step in Bitrise work…
SuHyeon00 Feb 8, 2026
33f228c
:sparkles: Feature: Rename android-sign step to sign-apk in Bitrise w…
SuHyeon00 Feb 8, 2026
463c220
:sparkles: Feature: Enable APK signing in Bitrise workflows
SuHyeon00 Feb 8, 2026
98a8a39
:sparkles: Feature: Enhance GoogleLoginHelper with error logging
SuHyeon00 Feb 8, 2026
05202ec
:sparkles: Feature: Upgrade gradle-runner and sign-apk steps to lates…
SuHyeon00 Feb 8, 2026
cb8a431
:sparkles: Refactor: Remove debug checks from logging methods in AppL…
SuHyeon00 Feb 8, 2026
89e14d6
Revert ":sparkles: Refactor: Remove debug checks from logging methods…
SuHyeon00 Feb 8, 2026
68fe8dd
:sparkles: Feature: use generic Crashlytics message for credential er…
SuHyeon00 Feb 25, 2026
78ba473
:recycle: Refactor: loop for google-services, dynamic Discord title, …
SuHyeon00 Feb 25, 2026
f3af954
:sparkles: Feature: add triggers
SuHyeon00 Feb 25, 2026
b276684
Merge branch 'develop' of https://github.com/UMC-Edison/Edison-AOS in…
JaeminHwang49 Mar 26, 2026
2fb1c43
Merge branch 'feature/bitrise-setting' of https://github.com/UMC-Edis…
JaeminHwang49 Apr 13, 2026
7aeeeca
Firebase 로직 수정 및 회원가입 api 요청 body 수정
JaeminHwang49 May 12, 2026
b812060
Firebase 로직 수정 및 회원가입 api 요청 body 수정
JaeminHwang49 May 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ import androidx.credentials.GetCredentialResponse
import androidx.credentials.exceptions.GetCredentialException
import com.google.android.libraries.identity.googleid.GetGoogleIdOption
import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential
import com.google.firebase.crashlytics.ktx.crashlytics
import com.umc.edison.BuildConfig
import com.umc.edison.R
import com.google.firebase.ktx.Firebase
import com.umc.edison.common.logging.AppLogger
import com.umc.edison.common.logging.UserContext
import com.umc.edison.domain.DataResource
Expand Down Expand Up @@ -39,7 +41,7 @@ class GoogleLoginHelper @Inject constructor(
) {
val signInWithGoogleOption = GetGoogleIdOption.Builder()
.setFilterByAuthorizedAccounts(false)
.setServerClientId(context.getString(R.string.google_cloud_server_client_id))
.setServerClientId(context.getString(R.string.firebase_config_client_id))
.setAutoSelectEnabled(true)
.build()

Expand All @@ -59,8 +61,17 @@ class GoogleLoginHelper @Inject constructor(
is androidx.credentials.exceptions.GetCredentialCancellationException ->
GoogleLoginState.ERROR_MESSAGE_CANCELLED

else ->
else -> {
AppLogger.e(
"Google SignIn",
"GetCredentialException: ${e.javaClass.simpleName} - ${e.message}",
e
)
Firebase.crashlytics.setCustomKey("google_signin_phase", "get_credential")
Firebase.crashlytics.setCustomKey("google_signin_error_type", e.javaClass.simpleName)
Firebase.crashlytics.setCustomKey("google_signin_error_message", "A credential error occurred.")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Crashlytics에 기록되는 에러 메시지가 고정된 문자열로 설정되어 있습니다. 실제 발생한 예외 메시지(e.message)를 함께 기록하면 나중에 문제를 분석할 때 더 구체적인 정보를 얻을 수 있습니다.

Suggested change
Firebase.crashlytics.setCustomKey("google_signin_error_message", "A credential error occurred.")
Firebase.crashlytics.setCustomKey("google_signin_error_message", e.message ?: "A credential error occurred.")

GoogleLoginState.ERROR_MESSAGE_UNKNOWN
}
}
onResult(GoogleLoginState.Failure(errorMessage))
}
Expand Down Expand Up @@ -98,11 +109,13 @@ class GoogleLoginHelper @Inject constructor(
onResult(GoogleLoginState.Failure(GoogleLoginState.ERROR_MESSAGE_INVALID_TOKEN))
}
} else {
AppLogger.w("Google SignIn", "CustomCredential type mismatch: ${credential.type}")
onResult(GoogleLoginState.Failure())
}
}

else -> {
AppLogger.w("Google SignIn", "Unknown credential type: ${credential.javaClass.simpleName}")
onResult(GoogleLoginState.Failure())
}
}
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/java/com/umc/edison/remote/di/NetworkModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,14 @@ object NetworkModule {
@Singleton
fun provideRefreshRetrofit(
httpLoggingInterceptor: HttpLoggingInterceptor,
hostSelectionInterceptor: HostSelectionInterceptor,
gsonConverterFactory: GsonConverterFactory
): Retrofit {
val okHttpClient = OkHttpClient.Builder()
.connectTimeout(TIME_OUT.toLong(), TimeUnit.SECONDS)
.readTimeout(TIME_OUT.toLong(), TimeUnit.SECONDS)
.writeTimeout(TIME_OUT.toLong(), TimeUnit.SECONDS)
.addInterceptor(hostSelectionInterceptor)
.addInterceptor(httpLoggingInterceptor)
.build()

Expand All @@ -93,4 +95,4 @@ object NetworkModule {
.client(okHttpClient)
.build()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ data class SignUpRequest (
val nickname: String,
@SerializedName("identities")
val identity: List<SetIdentityKeywordRequest>
)
)
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ data class SignUpResponse(
val accessToken: String,
@SerializedName("refreshToken")
val refreshToken: String,
@SerializedName("identity")
val identity: IdentityResponse
@SerializedName("identities")
val identities: List<IdentityResponse>
): RemoteMapper<UserWithTokenEntity> {
override fun toData(): UserWithTokenEntity =
UserWithTokenEntity(
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<string name="bubble">버블</string>
<string name="artboard">아트보드</string>
<string name="my">마이</string>
<string name="google_cloud_server_client_id">574560748765-f7gcudpd69caa8otl671d7apipjqg7er.apps.googleusercontent.com</string>
<string name="firebase_config_client_id">669429282923-8cfddnme5mtcfb25r2o3md9eaepnd2m9.apps.googleusercontent.com</string>
<string name="login_require_title">로그인이 필요한 페이지입니다</string>
<string name="login_require_detail">로그인으로 더 안전하게 아이디어를 보관하세요!</string>
<string name="login_require_title_hint">스페이스 자동 시각화 기능 지원\n맞춤형 레터 추천과 북마크 기능 지원</string>
Expand Down
Loading