提问者:小点点

如何用firebase身份验证重新验证用户?


我是新来的。 在我的具有多个页面的nuxt js项目中,firestore规则被设置为read or write once request.auth!=null。

因此,如果在页面中刷新时,auth将消失,并在终端中显示错误'permission-denied'。

我在本地尝试了身份验证状态持久性,但它不起作用。 使用这些身份验证持久性模式的目的是什么?

firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)
.then(function() {
return firebase.auth().signInWithEmailAndPassword(email, password);
})

共1个答案

匿名用户

Auth会话会自动持久存在于应用程序的前端,但是nuxt.js包含前端和后端部分。 如果您将用户数据存储在前端的某个地方,那么您可能需要等待,直到用户数据变得可以访问。

侦听器示例:

    firebase.auth().onAuthStateChanged(function (user) {
          if (user) {
            console.log('User is logged: ', user);
          }
        });

然而,这将使用户只能在前端访问,如果您想在后端预加载数据,您将需要在cookie中存储id和刷新令牌,或者使用Nuxt Firebase模块,它应该为您处理服务工作者。

因此,在您的情况下,看起来您正在尝试在用户数据变得可访问之前读取数据(这可能是由于尝试在后端获取数据造成的)。