【发布时间】:2018-09-05 13:02:05
【问题描述】:
我必须显示属于登录用户的数据。
我的数据库结构如下:
用户/驱动程序/Uid/姓名、电话... 如何以文本形式显示使用 JavaScript 登录的用户的数据?
<a> Username </a>
【问题讨论】:
标签: javascript html firebase dom firebase-realtime-database
我必须显示属于登录用户的数据。
我的数据库结构如下:
用户/驱动程序/Uid/姓名、电话... 如何以文本形式显示使用 JavaScript 登录的用户的数据?
<a> Username </a>
【问题讨论】:
标签: javascript html firebase dom firebase-realtime-database
如果你有这个 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;
})
所以这段代码(逐行):
将立即调用第 4 行,使用用户的当前值,然后每次用户数据更改时。
另请参阅 listening for values 上的 Firebase 文档。
如果页面也可以在用户未登录(尚未)时加载,您需要确保仅在用户已登录时运行此代码。您可以这是通过使用所谓的身份验证状态更改侦听器来实现的,每当用户的身份验证状态更改时都会调用该侦听器:
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 文档。
【讨论】: