Skip to content

Commit 895b56e

Browse files
Add handling of exception for GetUserAsync method.
1 parent 9b643fe commit 895b56e

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

src/Firebase.Auth/FirebaseAuthProvider.cs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Firebase.Auth
1+
using System.Net;
2+
3+
namespace Firebase.Auth
24
{
35
using System;
46
using System.Diagnostics;
@@ -59,11 +61,22 @@ public async Task<FirebaseAuthLink> SignInWithCustomTokenAsync(string customToke
5961
public async Task<User> GetUserAsync(string firebaseToken)
6062
{
6163
var content = $"{{\"idToken\":\"{firebaseToken}\"}}";
62-
var response = await this.client.PostAsync(new Uri(string.Format(GoogleGetUser, this.authConfig.ApiKey)), new StringContent(content, Encoding.UTF8, "application/json"));
64+
var responseData = "N/A";
65+
try
66+
{
67+
var response = await this.client.PostAsync(new Uri(string.Format(GoogleGetUser, this.authConfig.ApiKey)), new StringContent(content, Encoding.UTF8, "application/json"));
68+
responseData = await response.Content.ReadAsStringAsync();
69+
response.EnsureSuccessStatusCode();
6370

64-
JObject resultJson = JObject.Parse(await response.Content.ReadAsStringAsync());
65-
var user = JsonConvert.DeserializeObject<User>(resultJson["users"].First().ToString());
66-
return user;
71+
JObject resultJson = JObject.Parse(responseData);
72+
var user = JsonConvert.DeserializeObject<User>(resultJson["users"].First().ToString());
73+
return user;
74+
}
75+
catch (Exception ex)
76+
{
77+
AuthErrorReason errorReason = GetFailureReason(responseData);
78+
throw new FirebaseAuthException(GoogleDeleteUserUrl, content, responseData, ex, errorReason);
79+
}
6780
}
6881

6982
/// <summary>

0 commit comments

Comments
 (0)