使用firebase等待auth加载的问题

时间:2014-10-05 19:45:53

标签: javascript jquery firebase

我遇到的问题是,当页面加载时,需要一秒钟检查用户是否已登录。我使用该auth函数创建currentUser变量,该变量已成功用于其他由click单击触发的函数事件。但是当在页面加载时加载特定于该用户的内容时,它表示该变量未定义(因为它需要auth才能完成)。

如何在auth完成之前获取当前用户,或者使加载时触发的函数等待auth为竞争对手?

2 个答案:

答案 0 :(得分:4)

Firebase上周五(2014年10月3日)发布了新的客户端库,其中包含用于身份验证数据的同步访问器,这听起来就像您需要的那样:

var ref = new Firebase('https://<your-firebase>.firebaseio.com');
var authData = ref.getAuth();

尝试将您的客户端库升级到适用于Web的v1.1.0或更高版本,并在https://www.firebase.com/docs/web/guide/user-auth.html#section-monitoring-authentication上查看最新文档。

答案 1 :(得分:2)

您可以使用setInterval,以下代码会每隔半秒检查一次currentUser,并在fireBusinessLogicHereFunction()可用时运行currentUser

var checkAuthInterval = setInterval(function(){
  if ( typeof currentUser !== undefined ) {
      clearInterval(checkAuthInterval);
      fireBusinessLogicHereFunction();
  }
}, 500);

稍后可以使用promises - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise