web-dev-qa-db-fra.com

Comment obtenir la taille d'un élément / liste dans Firebase sans tout obtenir?

J'ai besoin de mesurer la taille/longueur d'un élément ou d'une liste dans Firebase mais je n'ai pas besoin du vrai contenu.

Quelque chose comme firebase.database().ref("users/").once("length" || "size").then(callback)

ps Javascript SDK

19
Rodolfo Paranhos

Firebase n'a pas d'opérateur de comptage, donc la seule façon est de télécharger tous les enfants ou de synchroniser une propriété <children>_count Distincte. Ce dernier n'est pas une tâche triviale (voir ma réponse ici pour une approche ), donc le plus souvent, les développeurs finissent probablement par adopter l'approche des téléchargements trop de données mais c'est trivial:

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

Un moyen plus efficace de compter les enfants serait de lancer un appel REST avec le paramètre shallow=true, Qui vous donnera uniquement les clés. Voir Dans Firebase, est -il un moyen d'obtenir le nombre d'enfants d'un nœud sans charger toutes les données du nœud?

56
Frank van Puffelen