@@ -26,30 +26,48 @@ class SignInDataSourceImpl @Inject constructor(
26
26
}
27
27
28
28
override suspend fun saveLogInUserInfo (userInfo : SignInUserInfo ): Boolean {
29
- dataStoreDb.edit { preferences ->
30
- preferences[PreferenceKeys .uid] = userInfo.uid
31
- preferences[PreferenceKeys .email] = userInfo.email ? : EMPTY_STRING
32
- preferences[PreferenceKeys .nickName] = userInfo.nickName ? : EMPTY_STRING
33
- preferences[PreferenceKeys .profileImgUri] = userInfo.profileImgUri ? : EMPTY_STRING
34
- }
29
+ val existedUser =
30
+ fireBaseDb.collection(USER_COLLECTION_PATH ).document(userInfo.uid).get().await()
31
+ val existedUserInfo = existedUser.toObject(UserResponse ::class .java)
32
+
33
+ if (existedUserInfo == null ) {
34
+ dataStoreDb.edit { preferences ->
35
+ preferences[PreferenceKeys .uid] = userInfo.uid
36
+ preferences[PreferenceKeys .email] = userInfo.email ? : EMPTY_STRING
37
+ preferences[PreferenceKeys .nickName] = userInfo.nickName ? : EMPTY_STRING
38
+ preferences[PreferenceKeys .profileImgUri] = userInfo.profileImgUri ? : EMPTY_STRING
39
+ }
35
40
36
- fireBaseDb.collection(USER_COLLECTION_PATH )
37
- .document(userInfo.uid).set(
38
- UserResponse (
39
- userInfo.uid,
40
- userInfo.nickName,
41
- userInfo.profileImgUri,
42
- emptyList()
41
+ fireBaseDb.collection(USER_COLLECTION_PATH )
42
+ .document(userInfo.uid).set(
43
+ UserResponse (
44
+ userInfo.uid,
45
+ userInfo.nickName,
46
+ userInfo.profileImgUri,
47
+ emptyList()
48
+ )
43
49
)
44
- )
50
+ } else {
51
+ dataStoreDb.edit { preferences ->
52
+ preferences[PreferenceKeys .uid] = existedUserInfo.uid
53
+ preferences[PreferenceKeys .email] = userInfo.email ? : EMPTY_STRING
54
+ preferences[PreferenceKeys .nickName] = existedUserInfo.name ? : EMPTY_STRING
55
+ preferences[PreferenceKeys .profileImgUri] =
56
+ existedUserInfo.profileUrl ? : EMPTY_STRING
57
+ }
58
+ }
45
59
46
60
return true
47
61
}
48
62
49
63
override suspend fun restoreRunningHistoryData (uid : String ): Result <Boolean > = runCatching {
50
- val runningHistoryData = fireBaseDb.collection(" RunningHistory" ).whereEqualTo(" uid" , uid).get().await()
64
+ val runningHistoryData =
65
+ fireBaseDb.collection(RUNNING_HISTORY_COLLECTION_PATH ).whereEqualTo(UID_KEY , uid).get()
66
+ .await()
51
67
runningHistoryData.forEach { runningHistory ->
52
- runningHistoryDao.addRunningHistory(runningHistory.toObject(RunningHistoryResponse ::class .java).toRunningHistoryEntity())
68
+ runningHistoryDao.addRunningHistory(
69
+ runningHistory.toObject(RunningHistoryResponse ::class .java).toRunningHistoryEntity()
70
+ )
53
71
}
54
72
true
55
73
}
@@ -61,5 +79,6 @@ class SignInDataSourceImpl @Inject constructor(
61
79
private const val PROFILE_IMG_URI = " profile_img_uri"
62
80
private const val EMPTY_STRING = " "
63
81
private const val USER_COLLECTION_PATH = " Users"
82
+ private const val RUNNING_HISTORY_COLLECTION_PATH = " RunningHistory"
64
83
}
65
84
}
0 commit comments