【发布时间】:2020-03-17 18:46:27
【问题描述】:
我试图向非技术人员代表 Firebase 用户。他希望最新的用户位居榜首。我在每个名为 joinDate 的 firebase 用户节点上都有这个键值对。我想以此为基础提取数据。
这里是代码
ref.on('value', function(snapshot) {
var i = 1;
snapshot.forEach(function(childSnapshot) {
var childData = childSnapshot.val();
console.log(childData);
if (childSnapshot) {
var emailText = childSnapshot.child("userProfile/email").val();
var joinDateText = childSnapshot.child("joinDate").val();
var currentPhyxText = childSnapshot.child("userProfile/currentPhyx").val();
var nameText = childSnapshot.child("userProfile/name").val();
var lastNameText = childSnapshot.child("userProfile/lastname").val();
var progressText = childSnapshot.child("userProfile/progress");
var lastSeenDateText = childSnapshot.child("userProfile/score/lastDate").val();
var StringifiedProgressText = JSON.stringify(progressText);
var email = document.createElement("h4");
var number = document.createElement("h4");
var joinDate = document.createElement("h6");
var currentPhyx = document.createElement("h6");
var name = document.createElement("h6");
var lastName = document.createElement("h6");
var lastDate = document.createElement("h6");
var lowbackData = document.createElement("h6");
var progress = document.createElement("h6");
var br = document.createElement("br");
email.style.display = "inline";
number.style.display = "inline";
lastName.style.display = "inline";
name.style.display = "inline";
joinDate.textContent = "Join Date : " + joinDateText;
currentPhyx.textContent = "Current Phyx : " + currentPhyxText;
number.textContent = i+") ";
email.textContent = emailText;
name.textContent = "Name : " + nameText;
lastName.textContent = " " + lastNameText;
lastDate.textContent = "Last Seen Date : " + lastSeenDateText;
progress.textContent = "Progress : " + StringifiedProgressText;
progress.textContent = progress.textContent.replace(/{/g, "");
progress.textContent = progress.textContent.replace(/}/g, "");
progress.textContent = progress.textContent.replace(/"/g, "");
progress.textContent = progress.textContent.replace(/,/g, " • ")
document.body.appendChild(number);
document.body.appendChild(email);
document.body.appendChild(joinDate);
document.body.appendChild(currentPhyx);
document.body.appendChild(name);
document.body.appendChild(lastName);
document.body.appendChild(lastDate);
document.body.appendChild(progress);
document.body.appendChild(br);
i++;
}
});
});
我试过了
ref.orderByChild("joinDate").on('value', function(snapshot) {
...
...
}
这不起作用,我的数据看起来像这样:- Firebase image
【问题讨论】:
-
“这不起作用”到底是什么意思?鉴于
joinDate是一个字符串,我猜结果是按月排序还是什么?您应该改用时间戳并将其格式化以供显示。
标签: javascript firebase sorting