Skip to content

Commit 56c91df

Browse files
committed
fix firebaseauth's FetchUserInfo & RefreshAccessToken Method
1 parent 29aeff2 commit 56c91df

File tree

1 file changed

+52
-36
lines changed

1 file changed

+52
-36
lines changed

Assets/FirebaseREST/Auth/FirebaseAuth.cs

Lines changed: 52 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -97,41 +97,49 @@ public void FetchUserInfo(int timeout, Action<Response<List<UserData>>> OnComple
9797
}, timeout);
9898
op.completed += ((ao) => HandleFirebaseResponse(op, (res) =>
9999
{
100-
Dictionary<string, object> map = Json.Deserialize(res.data) as Dictionary<string, object>;
101-
List<object> userDatas = Json.Deserialize(Json.Serialize(map["users"])) as List<object>;
102-
List<UserData> dataToReturn = new List<UserData>();
103-
for (int i = 0; i < userDatas.Count; i++)
100+
if (res.success)
104101
{
105-
Dictionary<string, object> userMap = Json.Deserialize(Json.Serialize(userDatas[i])) as Dictionary<string, object>;
106-
UserData ud = new UserData();
107-
ud.createdAt = userMap.ContainsKey("createdAt") ? long.Parse(userMap["createdAt"].ToString()) : 0L;
108-
ud.customAuth = userMap.ContainsKey("customAuth") ? bool.Parse(userMap["customAuth"].ToString()) : false;
109-
ud.disabled = userMap.ContainsKey("disabled") ? bool.Parse(userMap["disabled"].ToString()) : false;
110-
ud.displayName = userMap.ContainsKey("displayName") ? userMap["displayName"].ToString() : null;
111-
ud.email = userMap.ContainsKey("email") ? userMap["email"].ToString() : null;
112-
ud.emailVerified = userMap.ContainsKey("emailVerified") ? bool.Parse(userMap["emailVerified"].ToString()) : false;
113-
ud.lastLoginAt = userMap.ContainsKey("lastLoginAt") ? long.Parse(userMap["lastLoginAt"].ToString()) : 0L;
114-
ud.localId = userMap.ContainsKey("localId") ? userMap["localId"].ToString() : null;
115-
ud.passwordUpdatedAt = userMap.ContainsKey("passwordUpdatedAt") ? long.Parse(userMap["passwordUpdatedAt"].ToString()) : 0L;
116-
ud.photoUrl = userMap.ContainsKey("photoUrl") ? userMap["photoUrl"].ToString() : null;
117-
ud.validSince = userMap.ContainsKey("photoUrl") ? userMap["validSince"].ToString() : null;
118-
if (userMap.ContainsKey("providerUserInfo"))
102+
Dictionary<string, object> map = Json.Deserialize(res.data) as Dictionary<string, object>;
103+
List<object> userDatas = Json.Deserialize(Json.Serialize(map["users"])) as List<object>;
104+
List<UserData> dataToReturn = new List<UserData>();
105+
for (int i = 0; i < userDatas.Count; i++)
119106
{
120-
ud.providerUserInfo = new List<ProviderInfo>();
121-
List<object> providers = Json.Deserialize(Json.Serialize(userMap["providerUserInfo"])) as List<object>;
122-
for (int j = 0; j < providers.Count; j++)
107+
Dictionary<string, object> userMap = Json.Deserialize(Json.Serialize(userDatas[i])) as Dictionary<string, object>;
108+
UserData ud = new UserData();
109+
ud.createdAt = userMap.ContainsKey("createdAt") ? long.Parse(userMap["createdAt"].ToString()) : 0L;
110+
ud.customAuth = userMap.ContainsKey("customAuth") ? bool.Parse(userMap["customAuth"].ToString()) : false;
111+
ud.disabled = userMap.ContainsKey("disabled") ? bool.Parse(userMap["disabled"].ToString()) : false;
112+
ud.displayName = userMap.ContainsKey("displayName") ? userMap["displayName"].ToString() : null;
113+
ud.email = userMap.ContainsKey("email") ? userMap["email"].ToString() : null;
114+
ud.emailVerified = userMap.ContainsKey("emailVerified") ? bool.Parse(userMap["emailVerified"].ToString()) : false;
115+
ud.lastLoginAt = userMap.ContainsKey("lastLoginAt") ? long.Parse(userMap["lastLoginAt"].ToString()) : 0L;
116+
ud.localId = userMap.ContainsKey("localId") ? userMap["localId"].ToString() : null;
117+
ud.passwordUpdatedAt = userMap.ContainsKey("passwordUpdatedAt") ? long.Parse(userMap["passwordUpdatedAt"].ToString()) : 0L;
118+
ud.photoUrl = userMap.ContainsKey("photoUrl") ? userMap["photoUrl"].ToString() : null;
119+
ud.validSince = userMap.ContainsKey("photoUrl") ? userMap["validSince"].ToString() : null;
120+
if (userMap.ContainsKey("providerUserInfo"))
123121
{
124-
ProviderInfo providerInfo = new ProviderInfo();
125-
Dictionary<string, object> obj = Json.Deserialize(Json.Serialize(providers[j])) as Dictionary<string, object>;
126-
providerInfo.federatedId = obj["federatedId"].ToString();
127-
providerInfo.providerId = obj["providerId"].ToString();
128-
ud.providerUserInfo.Add(providerInfo);
122+
ud.providerUserInfo = new List<ProviderInfo>();
123+
List<object> providers = Json.Deserialize(Json.Serialize(userMap["providerUserInfo"])) as List<object>;
124+
for (int j = 0; j < providers.Count; j++)
125+
{
126+
ProviderInfo providerInfo = new ProviderInfo();
127+
Dictionary<string, object> obj = Json.Deserialize(Json.Serialize(providers[j])) as Dictionary<string, object>;
128+
providerInfo.federatedId = obj["federatedId"].ToString();
129+
providerInfo.providerId = obj["providerId"].ToString();
130+
ud.providerUserInfo.Add(providerInfo);
131+
}
129132
}
133+
dataToReturn.Add(ud);
130134
}
131-
dataToReturn.Add(ud);
135+
if (OnComplete != null)
136+
OnComplete(new Response<List<UserData>>("success", true, (int)op.webRequest.responseCode, dataToReturn));
137+
}
138+
else
139+
{
140+
if (OnComplete != null)
141+
OnComplete(new Response<List<UserData>>(res.message, false, res.code, null));
132142
}
133-
if (OnComplete != null)
134-
OnComplete(new Response<List<UserData>>("success", true, res.code, dataToReturn));
135143
}));
136144
}
137145

@@ -144,13 +152,21 @@ public void RefreshAccessToken(int timeout, Action<Response<TokenData>> OnComple
144152
}, timeout);
145153
op.completed += ((ao) => HandleFirebaseResponse(op, (res) =>
146154
{
147-
Dictionary<string, object> dataMap = Json.Deserialize(op.webRequest.downloadHandler.text) as Dictionary<string, object>;
148-
this.tokenData = new TokenData();
149-
tokenData.expiresIn = dataMap["expires_in"].ToString();
150-
tokenData.idToken = dataMap["id_token"].ToString();
151-
tokenData.refreshToken = dataMap["refresh_token"].ToString();
152-
if (OnComplete != null)
153-
OnComplete(new Response<TokenData>("success", true, (int)op.webRequest.responseCode, tokenData));
155+
if (res.success)
156+
{
157+
Dictionary<string, object> dataMap = Json.Deserialize(op.webRequest.downloadHandler.text) as Dictionary<string, object>;
158+
this.tokenData = new TokenData();
159+
tokenData.expiresIn = dataMap["expires_in"].ToString();
160+
tokenData.idToken = dataMap["id_token"].ToString();
161+
tokenData.refreshToken = dataMap["refresh_token"].ToString();
162+
if (OnComplete != null)
163+
OnComplete(new Response<TokenData>("success", true, (int)op.webRequest.responseCode, tokenData));
164+
}
165+
else
166+
{
167+
if (OnComplete != null)
168+
OnComplete(new Response<TokenData>(res.message, false, res.code, null));
169+
}
154170
}));
155171
}
156172

0 commit comments

Comments
 (0)