2017-10-18 31 views
0

Je suis débutant en utilisant Firebase et j'ai des doutes sur les données en double à la place. Supposons que j'ai une liste de commentaires d'utilisateurs pour une vidéo. Chaque commentaire a un nom d'utilisateur et un avatar. En supposant que l'utilisateur peut changer le nom et l'avatar. Qu'est-ce que les meilleures options:Fonctions Firebase vs Requêtes multiples

  1. ne conservez que le userId dans chaque commentaire et faire plus de demande pour obtenir des données de profil d'utilisateur ou
  2. Copiez le profil de l'utilisateur et chaque commentaire et utiliser une fonction Firebase de mettre à jour les données de profil lorsque l'utilisateur change son nom ou son avatar.

Quelques points à considérer:

OPTION 1

Plus

  • Utilisation moins de stockage

Cons

  • Si nous avons un grand nombre d'utilisateurs à l'aide de l'application, nous aurons beaucoup de demande supplémentaire pour obtenir le nom et avatar

OPTION 2

Pros

  • Dépensez Nous exécuterons en backend en utilisant firebase functi ons juste au moment où un utilisateur de changer l'avatar ou le nom

Const

  • Utilisez plus de stockage

Exemple:

// OPTION 1 
{ 
    user: { 
    user1: { 
     name: 'Name 1', 
     avatar: 'Avatar 1', 
    } 
    }, 
    comments: { 
    comment1: { 
     text: 'comment', 
     user: 'user1' 
    } 
    } 
} 

// OPTION 2 
{ 
    user: { 
    user1: { 
     name: 'Name 1', 
     avatar: 'Avatar 1', 
    } 
    }, 
    comments: { 
    comment1: { 
     text: 'comment', 
     user: { 
     id: 'user1', 
     name: 'Name 1', 
     avatar: 'Avatar 1', 
     } 
    } 
    } 
} 

Répondre

0

Cela dépend vraiment de ce que vous voulez pour atteindre, mais en général, je vous recommande d'aller avec option 2.

Dans Firebase ou généralement dans des bases de données NoSQL, la mise en miroir des données est une très bonne approche. Surtout si vous voulez construire une application avec de hautes performances. N'oubliez pas de mettre à jour vos données dans chaque noeud, chaque fois qu'il change. Mais une chose que vous devez savoir est que l'imbrication trop profonde peut aussi être mauvaise. C'est pourquoi je pense que cela dépend vraiment du cas si cela fait ou non.