如何在Firebase .unAuth()之后清理数据?

时间:2016-05-07 08:00:29

标签: firebase firebase-authentication

我在网站上使用Firebase(而且非常棒)。

通过几个.on('child_added').on('value')回调,我正在填充绑定到我的UI的本地商店。

当用户退出时,我想从我的本地商店清理他们的数据。对使用Firebase注销的用户做出反应的推荐方法是什么?理想情况下,我想将回调传递给.unauth()进行清理。但是没有这样的回调。

我目前的解决方案有点乱......

  • 我听onAuth()
  • 当使用非空值触发onAuth时,我设置了变量isLoggedIn = true
  • onAuthnull触发isLoggedId === true时,我会执行清理工作。

我不希望使用onAuth调用每个时间null,因为它会在页面加载时执行此操作。

1 个答案:

答案 0 :(得分:1)

如果用户触发注销,则表示您的代码正在调用unauth()。这也是清理的时刻:

ref.unauth();
cleanupData();

但是如果用户因其他原因(即他们的会话到期)而退出,那么在onAuth()null部分进行清理是有道理的。如果您担心初始null,可以将其包装在一个支票中:

var previousAuthData = null;
ref.onAuth(function(authData) {
  if (authData) {
    ...
  }
  else if (previousAuthData != null) {
    cleanupData();
  }
  previousAuthData = authData;
}
相关问题