簡體   English   中英

firebase 按日期時間 desc 和 asc 排序

[英]firebase order by datetime desc and asc

所以我從 firebase realtime 中學到了一些新的東西用於聊天目的..

但我仍然困惑如何進行“如何像 php 一樣訂購”

所以我有一些這樣的代碼

var timenow=moment().format('YYYY-MM-DD HH:m:s');
firebase.database().ref('message/notification').orderByChild("lastupdate").startAt(timenow).on('value',function(snapshot){
listuser.innerHTML+=snapshot.val().name;

});

這是我的數據庫

如何使用lastupdate子命令限制asc和desc方法? 我正在尋找主要針對 android 的教程的參考。

您已經在檢索按lastupdate並從“現在”開始的數據。 但是您用於處理結果的代碼不正確。

在回調中,您需要使用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 中查找有關實時數據庫的問題,我傾向於搜索這些標簽的組合 通過在搜索中添加更多術語,您通常可以很好地放大。 例如:這些是關於降序查詢的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM