按日期时间desc和asc的firebase顺序

时间:2020-10-29 07:43:16

标签: javascript firebase firebase-realtime-database

所以我从firebase实时学习了一些新东西,用于聊天。

但是我仍然困惑如何做出动作“如何像php一样订购”

所以我有一些这样的代码

if .. else ..

这里是我的数据库

如何使用lastupdate子命令限制asc和desc方法的限制?我正在搜索主要是针对Android的参考书。

1 个答案:

答案 0 :(得分:0)

您已经在检索他们的lastupdate排序的数据,并且从“ now”开始。但是您用于处理结果的代码不正确。

在回调中,您需要使用forEach遍历数据库的结果,然后将每个单独的节点添加到HTML。看起来像这样:

firebase.database().ref('message/notification').orderByChild("lastupdate").startAt(timenow).on('value',function(snapshot){
  listuser.innerHTML = "";
  snapshot.forEach(function(notificationSnapshot) {
    listuser.innerHTML += notificationSnapshot.val().name;
  });
});

或者,您可以监听child_added事件而不是value,这意味着Firebase会为您添加的每个孩子呼叫您。通过监听child_added,您将不需要在回调中循环:

firebase.database().ref('message/notification').orderByChild("lastupdate").startAt(timenow).on('child_added',function(snapshot){
  listuser.innerHTML += snapshot.val().name;
});

无法按降序从Firebase检索数据,因此您必须在应用程序代码中将其取反。最简单的方法是更改​​将其添加到HTML的方式,以始终将新数据添加到现有HTML:

listuser.innerHTML = snapshot.val().name + listuser.innerHTML;

最后:关于Firebase的问题已经成千上万了,因此,如果您可以根据自己的需求进行搜索,那么它确实会有所帮助。例如:要查找有关JavaScript中实时数据库的问题,我倾向于search for the combination of those tags。通过为搜索添加更多字词,通常可以很好地放大。例如:这些是关于querying in descending order的问题。

相关问题