Je suis en train d'apprendre Firebase et j'ai remarqué que toute opération remplace simplement les données, ce qui est un peu différent de ce que j'ai vu sur couchDB. Dans ma compréhension de leur documentation, dans le but de faire une annulation/annulation d'une opération .update()
possible, j'utiliserais la méthode .push()
. L'idée serait de conserver 2 versions des données, de sorte que je puisse interroger l'objet précédent. POUR COMMENCER, il devrait y avoir une approche de type FILO donc je ne stocke pas plus de 2 éléments.Firebase - façon correcte d'implémenter un .update() non annulable?
BASE DE DONNÉES AVANT PREMIERE ECRITURE:
myData
+ someObject
- keyOne : valueOne
- keyTwo : valueTwo
BASE DE DONNÉES APRÈS LA PREMIÈRE ECRITURE ref.child(someObject).update({keyOne:valueOneUpdated})
:
myData
+ someObject
- keyOne : valueOneUpdated
- keyTwo : valueTwo
Ce qui précède n'est pas le résultat souhaité, car j'ai perdu la version précédente de l'élément.
BASE DE DONNÉES APRÈS LA PREMIÈRE ECRITURE ref.child(keyOne).push({keyOne:valueOneUpdated})
:
myData
+ someObject
+ keyOne
+ 1k34jh23kj4h : valueOneUpdated
+ 237we8sjkdf8 : valueOne
- keyTwo : valueTwo
Beurk! Comme il n'y a pas de méthode pop()
pour supprimer le dernier élément d'une telle opération, je suis maintenant confronté à devoir trouver en quelque sorte quel est le premier et quel est le dernier élément.
Certes, il doit y avoir une façon élégante et directe de rendre possible le retour en arrière, non? Qu'est-ce que je rate?
Merci.
Il existe plusieurs façons de créer un système de gestion des versions sur une base de données. Lequel est le mieux pour vous, dépend largement des besoins de votre application. –