Méthode appropriée pour stocker des valeurs de type tableau dans Firebase
J'ai un nom de la chanson, avec des notes, je suis d'économie.
Et il semble que le pic ci-dessous, que je suis en utilisant push()
pour stocker chaque nouvelle note.
Mais ce que je voudrais voir est, ratings
comme un tableau de
objets, chacun contenant quelque chose comme ceci:
voter: {
ip: "1.1.1.1",
stars: 3,
}
Donc rating
clé de finir par être quelque chose comme ceci:
rating: [{ip: "1.1.1.1", stars: 3}, ...]
Alors je ne peut activer qu'un seul vote par adresse IP. Ce que je n'arrivais pas à trouver dans
Firebase
docs, est de savoir comment ajouter une clé existante, dans ce cas rating
(mais il serait [liste, comme]) - un
nouveau hash
comme ci-dessus.
Parce que push()
crée automatiquement hash-key
valeur, et je tiens à ajouter
pour une clé existante.
EDIT:
Je suis conscient du faitque Firebase ne pas stocker des tableaux en mode natif, mais dans ce cas, il n'a pas d'importance, c'est juste la façon dont je voudrais voir mes données.
source d'informationauteur branquito
Vous devez vous connecter pour publier un commentaire.
Vous utilisez actuellement
push
pour ajouter de nouveaux enfants, qui génère automatiquement un nom pour le nouveau nœud qui est "garanti" pour être unique à travers de multiples clients.Firebase est
push
méthode est une bonne façon d'avoir plusieurs clients de l'ajout d'éléments à une collection ordonnée. Si vous voulez accomplir les mêmes à l'aide de tableaux, vous devez synchroniser la longueur du tableau entre les clients. Firebase est de la génération de nom ne nécessite pas une telle surcharge, donc, normalement, est le préféré de garder un ordre de la collection de à travers de multiples clients.Mais dans votre cas, vous n'avez pas l'air de vouloir l'ordre "ajouter que" la collecte. Il semble que vous considérez que l'adresse IP est une identification de chaque nœud. Dans ce cas, je voudrais utiliser l'adresse IP comme base pour le nom du nœud:
Vous accomplir cela avec:
Si vous souhaitez par la suite de lire tous les votes dans un tableau, vous pouvez le faire:
J'ai voulu créer une réutilisables fonction pour ajouter/enregistrer n'importe quel objet en vertu d'un nœud racine (même si cela a un tableau de données à n'importe quel niveau à l'intérieur de l'objet). Donc, je suis venu avec cette. (Je ne suis pas sûr si conforme aux meilleures pratiques, mais cela a fonctionné assez lisse)
Donc à ajouter un nouvel utilisateur en vertu de la racine
users
vous composez le:et à mise à jour d'utilisateur existant: