316 votes

À quoi sert le type de données "Référence" de Firebase Firestore ?

Je suis en train d'explorer le nouveau Firebase Firestore et il contient un type de données appelé reference . Je ne vois pas très bien à quoi cela sert.

  • C'est comme une clé étrangère ?
  • Peut-on l'utiliser pour pointer vers une collection qui se trouve ailleurs ?
  • Si reference est une référence réelle, puis-je l'utiliser pour des requêtes ? Par exemple, puis-je avoir une référence qui pointe directement vers l'utilisateur, au lieu de stocker l'ID utilisateur dans un champ de texte ? Et puis-je utiliser cette référence d'utilisateur pour effectuer des requêtes ?

32 votes

Je pense que cette vidéo de l'équipe de firebase vous explique tout : youtube.com/watch?v=Elg2zDVIcLo (regarder à partir de 4:36)

25 votes

1 votes

Je n'aime pas imbriquer les collections dans firebase pour de multiples raisons. Si pour une raison quelconque, vous avez une autre collection de niveau racine que vous avez besoin de forer tout le chemin vers le bas sur une collection racine sœur ; disons 4 niveaux pour obtenir un document. Ceci est rendu beaucoup plus facile en utilisant des références et en utilisant simplement db.doc('some_saved_ref') plutôt que de faire correspondre tous les identifiants à nouveau... à partir de l'autre collection racine.

0voto

taku Points 86

De façon tardive, il y a deux avantages à ce blog :

enter image description here

si je prévois de vouloir classer les critiques de restaurant par note, par date de publication ou par nombre de votes positifs, je peux le faire dans une sous-collection de critiques sans avoir besoin d'un index composite. Dans la plus grande collection de niveau supérieur, je devrais créer un index composite distinct pour chacun de ces éléments. Indices composites 200 .

Je n'aurais pas 200 indices composites mais il y a des contraintes.

En outre, du point de vue des règles de sécurité, il est assez courant de restreindre les documents enfants en fonction de certaines données qui existent dans leur parent, et cela est beaucoup plus facile à faire lorsque les données sont configurées dans des sous-collections.

Un exemple serait de restreindre l'insertion d'une collection enfant si l'utilisateur n'a pas le privilège dans le champ du parent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X