Firebase实时数据库连接数据-Web

时间:2018-09-05 13:02:06

标签: javascript html firebase dom firebase-realtime-database

我必须显示属于已登录用户的数据。

我的数据库结构如下:

用户/驱动程序/ Uid /名称,电话... 如何显示使用JavaScript作为文本登录的用户的数据?

<a> Username </a>

1 个答案:

答案 0 :(得分:1)

如果您有以下HTML:

<a id="username"> Username </a>

这个数据库结构:

Users
  Drivers
    Uid: { name: "Name", phone: "Phone number" }

然后您可以使用以下命令显示当前用户的名称:

var currentUser = firebase.auth().currentUser;
var userRef = firebase.database().ref("Users/Drivers").child(currentUser.uid);
userRef.on("value", function(snapshot) {
  document.getElementById("username").innerText = snapshot.val().name;
})

此代码可以做到(逐行):

  1. 确定当前用户
  2. 在数据库中创建对该用户数据的引用
  3. 开始监听该数据,这意味着它将加载当前数据,然后监视所有更改
  4. 将用户名放入元素中。

第4行将立即使用用户的当前值调用,然后每次用户数据更改时调用。

另请参阅listening for values上的Firebase文档。

如果还可以在用户未登录时加载页面,请确保仅在用户 did 登录时才运行此代码。通过使用所谓的身份验证状态更改侦听器来实现,只要用户的身份验证状态发生更改,就会调用该侦听器:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    var userRef = firebase.database().ref("Users/Drivers").child(user.uid);
    userRef.on("value", function(snapshot) {
      document.getElementById("username").innerText = snapshot.val().name;
    })
  }
});

请参阅getting the current signed in user上的Firebase文档。