So schreiben Sie denormalisierte Daten in Firebase

Lesezeit: 2 Minuten

So schreiben Sie denormalisierte Daten in Firebase
Collardeau

Ich habe die Firebase-Dokumentation gelesen Daten strukturieren. Die Datenspeicherung ist billig, aber die Zeit des Benutzers ist es nicht. Wir sollten für Get-Operationen optimieren und an mehreren Stellen schreiben.

Dann speichere ich vielleicht a Liste Knoten und a Listenindex -Knoten, mit einigen doppelten Daten zwischen den beiden, zumindest dem Listennamen.

Ich verwende ES6 und verspreche in meiner Javascript-App, den asynchronen Fluss zu handhaben, hauptsächlich das Abrufen eines Ref-Schlüssels von Firebase nach dem ersten Daten-Push.

let addIndexPromise = new Promise( (resolve, reject) => {
    let newRef = ref.child('list-index').push(newItem);
    resolve( newRef.key()); // ignore reject() for brevity
});
addIndexPromise.then( key => {
   ref.child('list').child(key).set(newItem);
 });

Wie stelle ich sicher, dass Daten bleiben überall synchronda ich weiß, dass meine App nur auf dem Client ausgeführt wird?

Zur Plausibilitätsprüfung habe ich ein setTimeout in meinem Versprechen gesetzt und meinen Browser geschlossen, bevor es aufgelöst wurde, und tatsächlich war meine Datenbank nicht mehr konsistent, mit an zusätzlicher Index ohne entsprechende Liste gespeichert.

Irgendein Rat?

  • Ich werde eine richtige Antwort unten schreiben. Der erste Satz freut mich. Können Sie es auf Geburtstagsfeiern wiederholen? Vor allem, wenn Entwicklerfreunde anwesend sind. 🙂

    – Frank van Puffelen

    7. Juni 2015 um 21:50 Uhr

  • Dies scheint relevant zu sein, auch .. stackoverflow.com/questions/47334382

    – Fett

    5. März 2018 um 11:08 Uhr

  • Danke Frank für die tolle Antwort! In der Tat habe ich mich für den Ansatz „Nicht interessiert“ entschieden. Ich habe meine Schreiboperationen so geändert, dass das Element vor dem Index steht, sodass ich nicht riskiere, ein Element in der Liste zu haben, das auf einen Ort ohne Daten verweist (aber jetzt könnte ich mit einem verwaisten Listenelement enden, was nicht der Fall ist eine große Sache).

    – Collardeau

    10. Juni 2015 um 8:31 Uhr

  • So eine tolle Antwort. Die Ratschläge, die Sie skizziert haben, sind sehr nützlich und gelten für viele Szenarien, nicht nur für Firebase.

    – Scott Coates

    14. Juli 2015 um 3:54 Uhr

  • Achten Sie darauf, den Server-Task zu verzögern eventuelle Konsistenz und vergewissern Sie sich, dass der Name nicht noch einmal geändert wurde.

    – AJcodez

    2. August 2015 um 17:04 Uhr

  • Tolle Ergänzung Uffe. Cloud-Funktionen eignen sich dafür hervorragend, solange Sie keine strengen Echtzeit- oder Offline-Anforderungen haben.

    – Frank van Puffelen

    13. Januar 2018 um 3:23 Uhr

964020cookie-checkSo schreiben Sie denormalisierte Daten in Firebase

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy