React Firebase получает последние записи на основе значения временной метки - PullRequest
0 голосов
/ 14 июля 2020

Я работаю над веб-приложением чата в реальном времени, используя ReactJS и Firebase, и для этого моя структура базы данных Firebase:

На каждом узле сообщения у меня есть значение timestamp, и я хочу получить только 5 или 10 записей, заказав это значение timestamp (точно так же, как мы это делаем в СУБД - OrderBy и Limit) .

Для этого я пробовал:

messageRef.orderByKey().on("child_added", function(snapshot) {
    console.log(snapshot.key);
});

и

messageRef.orderByChild("created_at").on("child_added", snap => {
   console.log(snap.val());
});

Но не получил только узлы сообщений, вместо этого они возвращают туда родительские узлы. Поэтому, пожалуйста, дайте мне знать, есть ли способ, которым я могу напрямую получить эти записи, минуя каждый узел.

Заранее спасибо.

1 Ответ

0 голосов
/ 14 июля 2020

Ваш messageRef извлекает все узлы во всей базе данных, поэтому вы также получаете и родительские узлы.

Если вы хотите получить только самые последние сообщения, отфильтрованные по метке времени, попробуйте что-нибудь вот так:

var messageRef = firebase.database().ref('chatroom_indiv..../').orderByChild('created_at').limitToLast(10);

у вас работает что-то подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...