我需要从C#WebApi连接到Firebase。
为此我创建了一个类库,它是连接到Firebase并检索信息的类。
当我从控制台应用程序调用此类库时,一切都运行顺利,但是当我尝试使用Postman从WebApi运行它时,它开始出现异步问题。特别是DeadLock正在发生。
我正在使用FirebaseDatabase.net nugget作为Firebase客户端。
修改
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请求位置时,该调用适用于控制台应用程序,但不适用于webapi调用