Как получить размер элемента / списка в Firebase без всего этого?

javascript firebase firebase-realtime-database

32307 просмотра

2 ответа

273 Репутация автора

Мне нужно измерить размер / длину элемента или списка в Firebase, но мне не нужен реальный контент.

Что-то вроде firebase.database().ref("users/").once("length" || "size").then(callback)

PS Javascript SDK

Автор: Rodolfo Paranhos Источник Размещён: 18.07.2016 06:14

Ответы (2)


59 плюса

284387 Репутация автора

Решение

В Firebase нет оператора подсчета, поэтому единственный способ - загрузить все дочерние элементы или<children>_count синхронизировать отдельное свойство. Последнее не является тривиальной задачей (см. Мой ответ здесь для одного подхода ), так что чаще всего разработчики, скорее всего, в конечном итоге выберут подход «загрузка-слишком-много-данных-но-тривиальное»:

ref.child("messages").on("value", function(snapshot) {
  console.log("There are "+snapshot.numChildren()+" messages");
})

Более эффективным способом подсчета детей будет запуск вызова REST с shallow=trueпараметром, который даст вам только ключи. См. В Firebase, есть ли способ получить количество дочерних узлов без загрузки всех данных узла?

Автор: Frank van Puffelen Размещён: 18.07.2016 07:27

-1 плюса

11 Репутация автора

Также нашел пост, который делает это по-другому ...

Object.keys(users).length;

Post: длина объекта JavaScript

Автор: Aleks Witko Размещён: 01.08.2018 09:18
32x32