代码之家  ›  专栏  ›  技术社区  ›  David Gilbertson

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

  •  0
  • David Gilbertson  · 技术社区  · 10 年前

    我在一个网站上使用Firebase(它太棒了)。

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

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

    我目前的解决方案有点混乱。。。

    • 我听着 onAuth() .
    • 什么时候 onAuth 用非空值触发我设置了一个变量 isLoggedIn = true
    • 什么时候 onAuth(身份验证) 由触发 null 和 isLoggedId === true 然后我进行清理。

    我不想清理 每一个 时间 onAuth(身份验证) 用调用 无效的 因为它在页面加载时执行此操作。

    1 回复  |  直到 10 年前
        1
  •  1
  •   Frank van Puffelen    10 年前

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

    ref.unauth();
    cleanupData();
    

    但如果用户因其他原因退出(即会话过期),则在 null 的一部分 onAuth() 有道理。如果你担心最初 无效的 ,您可以将其包装在支票中:

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