Skip to content

Commit ed86e04

Browse files
authored
Merge pull request #88 from sergeylopatyuk/master
Add handling of exception for GetUserAsync method
2 parents 9141eff + 85edc39 commit ed86e04

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/Firebase.Auth/FirebaseAuthProvider.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,22 @@ public async Task<FirebaseAuthLink> SignInWithCustomTokenAsync(string customToke
6262
public async Task<User> GetUserAsync(string firebaseToken)
6363
{
6464
var content = $"{{\"idToken\":\"{firebaseToken}\"}}";
65-
var response = await this.client.PostAsync(new Uri(string.Format(GoogleGetUser, this.authConfig.ApiKey)), new StringContent(content, Encoding.UTF8, "application/json")).ConfigureAwait(false);
65+
var responseData = "N/A";
66+
try
67+
{
68+
var response = await this.client.PostAsync(new Uri(string.Format(GoogleGetUser, this.authConfig.ApiKey)), new StringContent(content, Encoding.UTF8, "application/json")).ConfigureAwait(false);
69+
responseData = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
70+
response.EnsureSuccessStatusCode();
6671

67-
JObject resultJson = JObject.Parse(await response.Content.ReadAsStringAsync().ConfigureAwait(false));
68-
var user = JsonConvert.DeserializeObject<User>(resultJson["users"].First().ToString());
69-
return user;
72+
var resultJson = JObject.Parse(responseData);
73+
var user = JsonConvert.DeserializeObject<User>(resultJson["users"].First().ToString());
74+
return user;
75+
}
76+
catch (Exception ex)
77+
{
78+
AuthErrorReason errorReason = GetFailureReason(responseData);
79+
throw new FirebaseAuthException(GoogleDeleteUserUrl, content, responseData, ex, errorReason);
80+
}
7081
}
7182

7283
/// <summary>

0 commit comments

Comments
 (0)