Мне нужно подключиться к Firebase из C # WebApi.
Для этого я создал библиотеку классов, которая подключается к Firebase и получает информацию.
Когда я вызываю эту библиотеку классов из консольного приложения, все работает гладко, но когда я пытаюсь запустить ее из WebApi с помощью Postman, у него возникают проблемы с асинхронностью. В частности, происходит DeadLock.
Я использую слепок FirebaseDatabase.net в качестве клиента Firebase.
EDIT
private async Task<string> LoginAsync()
{
var FirebaseApiKey = "XXXXXXXX";
var authProvider = new FirebaseAuthProvider(new FirebaseConfig(FirebaseApiKey));
var auth = await authProvider.SignInWithEmailAndPasswordAsync("myemail@mail.com", "mypassword");
return auth.FirebaseToken;
}
public FirebaseClient getClient()
{
if (client == null)
{
client = new FirebaseClient("https://approach-197117.firebaseio.com", new FirebaseOptions
{
AuthTokenAsyncFactory = LoginAsync
});
}
return client;
}
public static async Task<Dictionary<string, Location>> Run()
{
FirebaseConnect firebaseConnect = new FirebaseConnect().getInstance();
var firebase = firebaseConnect.getClient();
var list = await firebase.Child("Location").OnceSingleAsync<Dictionary<string, Location>>();
return list;
}
Проблема возникает в том, что когда я пытаюсь выполнить OnceSingleAsync, запрашивающий Location, вызов работает в консольном приложении, но не работает при вызове webapi