2016-09-28 4 views
1

firebaseauthentication.netライブラリを使用してFirebaseにサインインするサービススタック用のカスタムクレデンシャルプロバイダを作成したいとします。私が持っている問題は、認証メソッドを呼び出した後に、ブラウザがロードを永遠に言っているということです。これは私のコードです:Firebaseを使用したServiceStackのカスタムクレデンシャルプロバイダ

public override bool TryAuthenticate(IServiceBase authService,string userName, string password) 
    { 
     return Authenticate(userName, password).Result; 
    } 

    private async Task<bool> Authenticate(string userName,string password) 
    { 
     provider = new FirebaseAuthProvider(new FirebaseConfig(firebaseApiKey)); 
     try 
     { 
      auth = await provider.SignInWithEmailAndPasswordAsync(userName, password); 


      return auth.User != null; 
     } 
     catch(Exception e) 
     { 
      return false; 
     } 

    } 

    public override IHttpResult OnAuthenticated(IServiceBase authService,IAuthSession session, IAuthTokens tokens,Dictionary<string, string> authInfo) 
    { 

     session.FirstName = auth.User.DisplayName; 
     session.Id = auth.User.LocalId; 
     session.Email = auth.User.Email; 

     return base.OnAuthenticated(authService, session, tokens, authInfo); 


    } 

答えて

1

あなたは例えば、単にタスクを使用してみてください、syncメソッドで非同期/のawaitを使うべきではありません。

private Task<bool> Authenticate(string userName,string password) 
{ 
    provider = new FirebaseAuthProvider(new FirebaseConfig(firebaseApiKey)); 
    return provider.SignInWithEmailAndPasswordAsync(userName, password) 
     .Success(r => r.User != null) 
     .Error(ex => false); 
} 
関連する問題