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

显示firebase数据库(web)中的当前用户数据

尉迟栋
2023-03-14

喂!

我一直在做一个web项目,用户可以注册和登录。我也想添加一个配置文件,他们提供的一些信息可以在“配置文件”页面上显示。

我已经使用firebase auth(与电子邮件和密码)和rt数据库存储额外的信息,如‘姓名','生物’等。

我已经尝试过这里其他问题的解决方案,但似乎没有一个对我有效。

下面是我的数据库的外观:

users:
|
+-uid1
 |
 +-Name
 |
 +-Gender..
|
+-uid2
 |
 +-Name
 |
 +-Gender..

下面是配置文件页面的一些代码:

    //getting reference to the apps
   const auth = firebase.auth();
   const database = firebase.database();
   //also creating table 'users' on database
   const rootRef = database.ref('users');

// ------------------------------------//

   //Check if signed in
    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        // User is signed in.

    database.ref('/users/'+ userId).on('value')
    .then(function(snapshot) {
      var snapVal = snapshot.val();
      displayName.innerHTML = snapVal.Name
      var name = diplayName
      document.getElementById("username").innerHTML = "Welcome: " + name + "!";
    })
  } else {
    // No user is signed in.
    window.location = "login.html"
  }
}); 

当我测试代码时,我在控制台上得到了这个错误:

Error: Query.on failed: Was called with 1 argument. Expects at least 2.

另外,我真的不知道我是否正确地使用了这个函数。

我应该用其他东西替换“用户ID”吗?

谢谢你阅读这篇文章,祝你有一个美好的一天!

共有1个答案

郦良才
2023-03-14

您还没有将userid设置为任何内容。当您的onAuthStateChanged回调函数被调用,并且user具有一个值时,您就知道有一个用户已经登录。此时,您可以通过执行user.UID来获取该用户的UID。

所以类似于:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    database.ref('/users/'+ user.uid).once('value')
    .then(function(snaphot) {
      document.getElementById("username").innerText = "Welcome: " + snapshot.val().Name;
    })
  } else {
    window.location = "login.html"
  }
}); 

snapshot.val().name中的名称需要与要显示的数据库中用户节点的任何属性匹配

 类似资料:
  • 应用程序运行良好...只是数据没有出现...我已经添加了sha用户电子邮件显示在登录后,在登录活动中我已经添加了 但是在实时数据库数据不显示以防万一…我也等了半个小时,尝试了所有的东西…网络也不错。数据库中的数据库规则的数据库图片 mainActivity.java//不能用于单个子级,即firebaseDatabase.getInstance().getReference().child(“aj

  • 我试着使用这种方法:Android-登录textView后显示sqlite数据库中的用户名 但我得到一个错误: 我想要的是在成功登录后在UserPanelActivity中显示当前昵称。 用户面板活动: DataBaseHelper: UserPanel.xml 登录活动: 谢谢你的帮助!:)

  • 好的,所以我让它运行,显示用户ID,但不得分。然后我开始做一些改变,忘记了我改变了什么,现在我又回到了null null。我觉得我可能删掉了什么或者拼错了什么。 下面是我的模型: 数据库:链接到我的数据库屏幕截图

  • 问题内容: 我正在使用jdbc编写程序,该程序将成为数据库的接口(类似于CRUD应用程序)。我假设我必须编写一个类(例如),该类将对数据库执行所有操作(以及可能会简化为这些操作的某些其他逻辑)。用户界面由一组表和一些按钮组成。要使用Jtable,我需要实现一个类(例如),它是AbstractTableModel的子类。因此,此类将向用户显示我的数据。我需要为数据库架构中的所有表实现这种模型。我不想

  • 这是我的数据库代码,我想从我的数据库中检索名称,并将其显示在listview中,在下面发布的另一个java文件中显示为profilelist.jar。但是我不能这样做,请告诉我这段代码是否正确? profileList.java 我在a.vaccination.datahandler.getTitle(datahandler.java:115)和a.vaccination.profilelist.