默认情况下,如果用户在X之前登录,Firebase将要求他/她通过reauthenticateWithCredential
重新进行身份验证才能完成操作。
如果用户在进行下一步操作之前已经具备重新认证的资格,是否可以查询Firebase API?
答案 0 :(得分:2)
对于某些敏感操作,Firebase身份验证API要求用户最近使用其凭据进行(重新)身份验证。
当前无法检测到特定呼叫是否需要这种重新认证,也没有关于Firebase要求重新认证之前的时间间隔的文档。
实现此目的的正确方法是执行操作并捕获错误。如果error.code
是auth/requires-recent-login
,则要求用户重新进行身份验证,请使用新的凭据呼叫reauthenticateWithCredential
,然后重试该操作。
答案 1 :(得分:1)
一种常见的方法是检查Firebase用户是否已登录,如果未登录,则重定向到登录页面。
const user = firebase.auth().currentUser;
if (user) {
// User is signed in.
} else {
// No user is signed in. Redirect to sign-in page.
}
此外,许多Firebase Auth
API方法返回错误代码,例如auth/user-token-expired
或auth/null-user
。例如,请参见updateCurrentUser
。这样的方法调用应该相应地处理错误。