11
我目前使用此代碼按時間順序加載最新的帖子:
CODE:
$scope.data = [];
var _n = Math.ceil(($(window).height() - 50)/(350)) + 1;
var _start = <%= lastID %>;
var firstElementsLoaded = false;
$scope.getDataset = function() {
fb.orderByChild('id').startAt(_start).limitToFirst(_n).on("child_added", function(dataSnapshot) {
_start = dataSnapshot.child("id").val() + 1;
console.log("LAST TRUE ID:"+ _start);
$scope.data.push(dataSnapshot.val());
$scope.$apply()
console.log("THE VALUE:"+$scope.data);
firstElementsLoaded = true;
});
};
$scope.getDataset();
問題:
我應該如何修改它,以便基本上具有完全相同的行爲,但僅根據其時間順序查詢分數高於100的帖子?
UPDATE:
我終於找到了一種方法使用「創建另一個指標」的方法與我的架構。但一個障礙仍然存在:
How to copy a childNode from one node to another?
這將通過兩個屬性,這是不可能的要求排序/過濾。您可以將這兩個值組合成一個屬性,如下所述:http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –
@FrankvanPuffelen謝謝爲了快速響應時間。我查看了你鏈接的答案,但我仍然對我如何將我的ID和分數合併到一個屬性中感到困惑。在我進一步調查之前,當您在我的問題中查看我的代碼時,對您來說似乎是可行的嗎? – Coder1000
這聽起來很棘手,因爲你基本上需要兩個相對的操作(> 100和orderByKey)。如果你可以將100個以上的物品分成一個獨立的頂層節點,那當然是微不足道的。 –