当前位置: 首页 > 知识库问答 >
问题:

Firebase保持跟踪是否已通过用户身份验证

陈马鲁
2023-03-14

我试图弄清楚,无论用户是否登录,如何保持我的应用程序的全局状态。 我必须在JavaScript文件中只有一个onAuthStateChanged()才能跟踪更改的状态并在其中添加所有HTML元素(如帐户详细信息),还是在每个HTML文件中添加多个onAuthStateChanged()并具有如下内容是一个好主意

  auth.onAuthStateChanged(function (user) {
    if (user) {
      document.getElementById("user-header-username").textContent = `Hi ${user.displayName}`;
    } else {
      document.getElementById("user-header-username").textContent = "Sign in";
    }
  }

我非常困惑,不知道如何以如此有效的方式构建我的应用程序,以便在用户被记录时显示特定部分,而在用户未被记录时显示其他内容,以及如何使其在整个应用程序中持久化。 如果有人能解释这个过程是如何运作的,以便理解如何进行,我将不胜感激。 我在这个项目中使用了vanilla JavaScript。

共有1个答案

卫和洽
2023-03-14

您需要某种应用程序状态。

我建议您redux:https://redux.js.org/

使用Redux,您的代码将如下所示(伪代码):

auth.onAuthStateChanged(function (user) {
  if (user) {
      store.dispatch("user-logged-in", user)
    } else {
      store.dispatch("user-logged-out")
    }
  }

store.subscribe("user-logged-in", (user) => {
  document.getElementById("user-header-username").textContent = `Hi ${user.displayName}`;
  // other side effects
})

store.subscribe("user-logged-out", () => {
  document.getElementById("user-header-username").textContent = "Sign in";
  // other side effects
})
 类似资料:
  • 我在注册过程中从用户那里得到了一些信息。我希望每个用户名都是唯一的。我称我的方法如下。 其内容如下。 方法无法向我的变量添加真布尔值。我想,addOnCompleteListener在为我的布尔值赋值时并没有结束。 但是,如果用户名控制后可以获得用户名,则用户身份验证成功,但不会写入Firebase。这可能是什么原因?我在等待您的帮助。

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 该应用程序应该接受用户电子邮件和密码,并使用Firebase身份验证作为后端。我使用像素2作为模拟器。每次应用程序处理登录功能时,它都会崩溃。 下面是Java文件和gradle文件 Java文件:

  • 因此,我正试图确定Firebase认证“验证”可能会迅速与Firebase定价计划挂钩的所有潜在方式。 如果我错了,请纠正我,但在以下情况下,授权验证将计入定价计划: 用户成功登录。 用户成功创建帐户。 当登录/创建由于某种原因失败时,不会 我在firebase.auth()的文档中找不到任何内容。onAuthStateChanged()方法对验证进行计数。 要检查身份验证状态是否已更改,您是否还

  • > 部署到云运行时,选择是进行身份验证 从这里使用REST调用生成firebase auth令牌 使用上面步骤2中的header bellow和ID_TOKEN对云运行实例进行api调用 授权:承载ID_TOKEN

  • 我正在考虑加入谷歌作为一个单一登录解决方案的身份提供商。问题是,我很想知道进行身份验证的谷歌用户是否在其帐户上启用了双因素身份验证。然而,这是我的googling技能失败的地方,因为我没有发现真正提到双因素身份验证信息可以作为身份验证令牌的一部分。 所以我的问题很简单,我如何才能发现一个通过Google IDP创建帐户的用户,或者只是链接他们的帐户的用户,是否在他们的Google帐户上启用了双因素

  • 在我的例子中,我不需要重写类名并且我发送空值...但我正在等待48小时,我的firebase analytics控制台没有显示关于这个事件的信息,有什么想法吗? 提前道谢!

  • 我正试图使我的网站的一部分,是限制只有那些人谁登录。 目前,我可以使用:检查它们的登录状态