Javascript Firebase angular$authWithOAuthRedirect

Javascript Firebase angular$authWithOAuthRedirect,javascript,angularjs,oauth,firebase,angularfire,Javascript,Angularjs,Oauth,Firebase,Angularfire,我使用Firebase和Angular和Angular fire登录OAuth 当我使用$authWithOAuthPopup时,一切正常,但传输并不总是可用,因此当我不得不回退到$authWithOAuthRedirect时,我无法让它工作 使用此代码,会发生以下情况: 执行登录(“twitter”)功能 请参阅控制台中的“检查1” 用户重定向到twitter OAuth流(url看起来像:https://api.twitter.com/oauth/authenticate?oauth_tok

我使用Firebase和Angular和Angular fire登录OAuth

当我使用
$authWithOAuthPopup
时,一切正常,但传输并不总是可用,因此当我不得不回退到
$authWithOAuthRedirect
时,我无法让它工作

使用此代码,会发生以下情况:

  • 执行登录(“twitter”)功能
  • 请参阅控制台中的“检查1”
  • 用户重定向到twitter OAuth流(url看起来像:
    https://api.twitter.com/oauth/authenticate?oauth_token=
  • 用户重定向回我的角度应用程序(url看起来像:
    http://localhost:3101/##?&__firebase_request_key=
  • promise回调:
    检查2
    检查3
    检查4
    永远不会运行,$onAuth函数(
    检查5
    )永远不会运行

    如果我使用$authWithOAuthPopup,它将按预期工作(只要支持该传输)


    authObj=$firebaseAuth new Firebase();
    authObj.$onAuth(函数(authData){
    控制台日志(“检查5”);
    });
    $scope.login=函数(提供程序){
    控制台日志(“检查1”);
    authObj.$authWithOAuthRedirect(提供程序)。然后(函数(authData){
    控制台日志(“检查2”);
    }).然后(函数(){
    控制台日志(“检查3”);
    }).catch(函数(err){
    控制台日志(“检查4”);
    });
    }
    
    我试图用另一个例子来重现这一点:。在这个重现的例子中,一切都很好。是我的应用程序中的其他东西引起了一些有趣的事情

    图书馆:


    您使用的是AngularFire的哪个版本?@Davidast 1.1.3。我还用AngularFire、AngularFire和firebase版本更新了这个问题。您可以创建plunkr或JSBin吗?捕获中是否有错误?捕获中没有错误。我从来没有看到“检查2”、“检查3”或“检查4”我会尝试在plunkr中重新设置
    authObj = $firebaseAuth new Firebase(<firebase root>);
    authObj.$onAuth(function(authData){
      console.log("CHECK 5");
    });
    
    
    $scope.login = function(provider) {
      console.log("CHECK 1");
      authObj.$authWithOAuthRedirect(provider).then(function(authData) {
        console.log("CHECK 2");
      }).then(function() {
        console.log("CHECK 3");
      }).catch(function(err) {
        console.log("CHECK 4");
      });
    }