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

How do I cleanup data after Firebase .unAuth()?

我在网站中使用 Firebase(它很棒)。

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

的本地商店

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

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

我不想在 每次 使用 null 调用 onAuth 时进行清理,因为它会在页面加载时执行此操作。

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

ref.unauth();
cleanupData();

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

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