如何检测用户最近是否已登录?

时间:2016-10-28 19:20:37

标签: firebase firebase-authentication

According to the docs某些操作(例如删除用户)要求用户最近登录。如果用户最近登录,如何在操作之前知道firebase.auth().currentUser返回的对象中是否有任何内容指示用户最近是否已登录?

编辑:为了进一步解释,用户可以登录并且firebase.auth().currentUser可以返回有效的用户数据,但用户可能在某个时间段之前已登录(我不是那样的(确切地说)并且这将用户标记为“最近未登录”,因此无法使用user.reauthenticate(credential)

重新进行身份验证而无法执行某些操作(请参见上文)

2 个答案:

答案 0 :(得分:1)

Firebase用户似乎是一个很好的做法,就是使用他们的Auth类进行登录和基本信息(提供商等),然后将user ID的实际用户数据存储在单独的{{1表。我们在中型应用和商店信息中使用了此设置,例如Userslast_logged_inupdated_at。这样做的附加好处是您可以像this answer一样查询。

这肯定会让您查询用户created_at以确定他们最近是否已登录。

答案 1 :(得分:0)

  

获取当前用户的推荐方法是设置观察者   在Auth对象上:

https://firebase.google.com/docs/auth/web/manage-users#get_the_currently_signed-in_user

您可以观察用户状态。当他登录/退出时,您将收到通知。

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User has recently signed in.
  } else {
    // No user has recently signed out.
  }
});