2017-12-20 5 views
0

Ich habe diese Struktur meiner Datenbank:von Firebase Realtime-Datenbank löschen

Beiträge

-> Key 
    -> PostId 
    -> PostName 
    -> PostDescription 
    -> PostDescription2 
    -> Location 
    -> Author 
    -> Date 

-> Key 
    -> 
    -> 
    .... 

Irgendwie PostDescription das Feld in PostDescription2 dupliziert worden ist, ich habe n solche Knoten, und ich möchte alle Einträge löschen von PostDescription2 von allen Knoten. Wie kann ich das machen ?

Ich habe einige Suche auf Google, aber die meisten Artikel erzählt, wie ein Kind Knoten oder Felder in ihnen mit einigen Logik in Abfrage löschen. Außerdem bin ich dem Firebase ein wenig neu.

+0

Sie müssen eine Abfrage ausführen, um [alle relevanten Knoten zu erhalten] (https://firebase.google.com/docs/database/web/lists-of-data#listen_for_child_events), dann [durchlaufen Sie sie] (https://firebase.google.com/docs/database/web/lists-of-data#listen_for_value_events), und [entfernen Sie die Eigenschaft von jedem] (https://firebase.google.com/docs/database/web/read-and-write # update_specific_fields). Wenn Sie Schwierigkeiten mit einem dieser Schritte haben, zeigen Sie, was Sie versucht haben. Das macht es viel einfacher zu helfen. –

+0

Hallo, danke @Frank, das Problem ist behoben. Ich habe nur die falsche Referenz aus der Datenbank genommen. –

+0

Hi @Frank, Gibt es eine Möglichkeit, die Firebase-Datenbank von der Konsole abzufragen, genau wie aws für DynamoDB? –

Antwort

0

Sie müssen diese Funktion einmal ausführen. (Seams so) Eine Probe des Löschens Code kann wie in dh aussehen: posts Pfad:

var dB = firebase.database(); 
    var dBRef =dB.ref('posts'); 
    dbRef.once('value', snpsht=>{ 
     snpsht.forEach(dp =>{ 
      var key = dp.key; 
      dB.ref('posts/' + key + '/PostDescription2').set(null); 
     }) 
}) 

Dies löscht alle PostDescription2 Feld mit null Wert. Berücksichtigen Sie, dass der Post-Pfad keine großen Daten ist, um den Code nicht zu blockieren. Wenn ja, können Sie Daten mit limitToLast Option wie erhalten:

var dBRef = dB.ref('posts').orderByChild('PostDescription2').limitToLast(1000); 

Dieser Befehl wird die Liste bestellen, indem PostDescription2 und Nullwert für den angegebenen untergeordneten Schlüssel an erster Stelle. und wir sammeln von den letzten 1000 Artikeln mit dem obigen Code.

+0

Hallo, nur neu zu Firebase. Kann diese Funktion von der Firebase-Konsole aus aufgerufen werden? wenn ja, wie? –

+0

Ich denke, es gibt keine solche Option an der Konsole. Aber es gibt einen anderen direkten Weg ohne Kodierung. Laden Sie die Datenbank auf der Konsole herunter (als JSON). Bearbeiten Sie die JSON-Datei mit dem JSON-Editor. (Ich benutze Klammern) Sie können alle in diesem Editor entfernen. Laden Sie diese Datei über die vorhandene Datenbank über die Konsole. (Seien Sie vorsichtig und erstellen Sie immer eine Kopie Ihrer Daten, bevor Sie sie bearbeiten) – HakanC

+0

Ich bin mir nicht sicher, aber es muss einen einfacheren Weg geben, dies von der Konsole aus zu tun. –

Verwandte Themen