2017-07-28 2 views
0

In meiner Firebase App Optimierung Firebase Datenbank habe ich die folgende Struktur:durch automatisches Überschreiben von Daten

  • Beiträge
    • Neueste

Alle Benutzer können unter Beiträge schreiben> Neueste. Ich möchte Einträge auf 20 Beiträge beschränken, um Speicherplatz in der Datenbank zu sparen. Und Beiträge über 20 sind unnötig, da sie auf der Homepage niemals angezeigt werden.

Wie kann ich die Beiträge auf 20 begrenzen, so dass, wenn ein Benutzer schreibt an Beiträge> Neueste die Beiträge am Ende werden automatisch gelöscht (gelöscht werden)?

+0

Überprüfen Sie meine Antwort https://stackoverflow.com/a/45348229/3222713 – Pipiks

Antwort

0

This sample should help you.

Sie brauchen etwas wie folgt aus:

const MAX_LOG_COUNT = 20; 

exports.removeOld = functions.database.ref('/Posts/Latest/{postId}').onCreate(event => { 
    const parentRef = event.data.ref.parent; 

    return parentRef.once('value').then(snapshot => { 
     if (snapshot.numChildren() >= MAX_LOG_COUNT) { 
      let childCount = 0; 

      const updates = {}; 

      snapshot.forEach(function(child) { 
       if (++childCount <= snapshot.numChildren() - MAX_LOG_COUNT) { 
        updates[child.key] = null; 
       } 
      }); 

      // Update the parent. This effectively removes the extra children. 
      return parentRef.update(updates); 
     } 
    }); 
}); 

You can find all Cloud Functions for Firebase samples here.

Verwandte Themen