【发布时间】:2021-01-19 23:55:39
【问题描述】:
所以我试图从最后一条评论的加载键开始加载 cmets。
目前我正在加载前 2 个 cmets,如下所示:
firebase.database()
.ref('/users/Hr9AFYHgOBZKkBqCjST789NrTJX2/updates/MRKbUNMJ85xRVokRorf/comments')
.limitToFirst(2).once('value').then((snapshot) => {
snapshot.forEach(function(child) {
console.log(child.val().commentText);
});
});
效果很好。
但我想从最后一条评论的键开始加载接下来的 2 个 cmets。
在我的实际代码中,我找到了最后一个注释键,但现在让我们说:
var lastCommentKey = '-MRP79KPZRuaLHhBN8oZ';
现在我已经尝试了以下所有代码,但每个都没有给我任何数据:
firebase.database()
.ref('/users/Hr9AFYHgOBZKkBqCjST789NrTJX2/updates/MRKbUNMJ85xRVokRorf/comments')
.limitToFirst(2).startAt(lastCommentKey).once('value').then((snapshot) => {
snapshot.forEach(function(child) {
console.log(child.val().commentText);
});
});
也尝试使用时间戳:
var lastCommentTimestamp = '1611051098364';
firebase.database().ref()
.child("/users/Hr9AFYHgOBZKkBqCjST789NrTJX2/updates/MRKbUNMJ85xRVokRorf/comments/")
.orderByChild('commentTimestamp').limitToFirst(2).startAt(lastCommentTimestamp).once('value', function (snapshot) {
....
});
有谁知道问题出在哪里?
这是我的数据库布局:
{
"users" : {
"Hr9AFYHgOBZKkBqCjST789NrTJX2" : {
"updates" : {
"-MRKbUNMJ85xRVokRorf" : {
"comments" : {
"-MRKbXy6YJ0jFlOMPHWF" : {
"commentText" : "comment 1",
"commentTimestamp" : 1610975438244,
"commentUser" : "Hr9AFYHgOBZKkBqCjST789NrTJX2"
},
"-MRP79KPZRuaLHhBN8oZ" : {
"commentText" : "comment 2",
"commentTimestamp" : 1611051098364,
"commentUser" : "Hr9AFYHgOBZKkBqCjST789NrTJX2"
},
"-MRP87mkILia7YqAfyUO" : {
"commentText" : "comment 3",
"commentTimestamp" : 1611051354198,
"commentUser" : "Hr9AFYHgOBZKkBqCjST789NrTJX2"
},
"-MRP9E5sgkpzEa4Mzhrj" : {
"commentText" : "comment 4",
"commentTimestamp" : 1611051642205,
"commentUser" : "Hr9AFYHgOBZKkBqCjST789NrTJX2"
},
"-MRP9Iprrcx1-A2Hq4iH" : {
"commentText" : "comment 5",
"commentTimestamp" : 1611051661597,
"commentUser" : "Hr9AFYHgOBZKkBqCjST789NrTJX2"
}
},
"updateText" : "This is a test update",
"updateTimestamp" : 1610975423540
}
}
}
}
}
【问题讨论】:
标签: javascript firebase firebase-realtime-database