According to the docs某些操作(例如删除用户)要求用户最近登录。如果用户最近登录,如何在操作之前知道? firebase.auth().currentUser
返回的对象中是否有任何内容指示用户最近是否已登录?
编辑:为了进一步解释,用户可以登录并且firebase.auth().currentUser
可以返回有效的用户数据,但用户可能在某个时间段之前已登录(我不是那样的(确切地说)并且这将用户标记为“最近未登录”,因此无法使用user.reauthenticate(credential)
答案 0 :(得分:1)
Firebase用户似乎是一个很好的做法,就是使用他们的Auth类进行登录和基本信息(提供商等),然后将user ID的实际用户数据存储在单独的{{1表。我们在中型应用和商店信息中使用了此设置,例如Users
,last_logged_in
和updated_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.
}
});