如何使用 Javascript 在 Firebase 中仅显示与今天日期相对应的特定子项?



因此,我正试图弄清楚应该如何构建数据,以及如何根据从数据库收到的日期对数据进行迭代。

这是目前的结构:

https://i.stack.imgur.com/K037M.jpg

"Datum"包含每天的日期(Epoch时间(,因为每个日期都有一个子日期,该子日期只包含一个以实际文本为值的"Text"。最终,这些历元时间将在一天的开始,即凌晨00:01

该应用程序应该是这样工作的:如果我在某个日期打开它,我只想在日期匹配的地方显示相应孩子的内容。内容在午夜更改。

到目前为止,这是我的代码:

var query = firebase.database().ref("Datum").orderByKey();
query.once("value").then(function(snapshot) {
snapshot.forEach(function(childSnapshot) {
// childData will be the actual contents of the child
var childData = childSnapshot.val();
var text_val = childSnapshot.val().Text;
$("#dagett").append(text_val);
//test
console.log("got the data!", childData);
});
});

现在,代码从两个子级获取内容,并将其附加到字符串中。但这并不是我想要的。我只想显示正确的儿童内容。

现在我遇到的问题是,我不知道如何迭代每个孩子,只显示哪个孩子的日期"正确"。我知道startAt((和endAt((,但到目前为止,我找到的唯一解决方案是创建包含epoch时间的js变量,但这并不能真正解决我的问题,因为我将有一百个日期,每个日期都包含文本和/或图像。我不想定义具有确切时间的特定js变量,然后使用这些函数进行查询。必须有更好的方法。

额外的好处:我还希望能够包含某些日期的图像,我不确定我是否可以在特定日期添加另一个孩子,然后以某种方式使用它,或者将查询与存储相结合?

请记住,这不是一个商业应用程序,只有一个人会使用它。因此,它不需要表现得很快或其他什么。

我希望这个问题足够清楚。

最终,这些历元时间将在一天的开始时间,即

因此,如果我们计算当时的今天时间戳,它将与数据库中的时间戳完全匹配:

const today = new Date();
today.setMinutes(1);
today.setHours(0);
today.setSeconds(0);
today.setMilliseconds(0);
const ts = +today;

现在,您只需获取存储在该键上的文本即可。类似于:

snapshot.child(ts).val().Text

最新更新