So löschen Sie einen Knoten in der Firebase-Echtzeitdatenbank in Javascript

Oct 19 2020

Es fällt mir schwer, einen Knoten in einer Firebase-Echtzeitdatenbank zu löschen.

So sieht meine Firebase-Echtzeitdatenbank aus:

Das ist , was ich versuchte, folgenden Lösch Knoten in Feuerbasis und Wie löschen / entfernen Knoten auf Firebase :

1)

     let chatRef = db.ref("/chats");
      var query = chatRef.orderByChild("uid").equalTo(chatId);
      query.on("child_added", (snapshot) => {
        snapshot.ref.remove();
      });

Mit dem obigen Code wurden beim Klicken zum Löschen die gesamten Daten (alle Knoten, einschließlich Chat) gelöscht.

2)

      chatRef.limitToLast(1).once("value", (snapshot) => {
        snapshot.forEach((deedSnapshot) => {
          deedSnapshot.ref.remove();
        });
      });

Ich habe dies wie beabsichtigt zum Laufen gebracht, aber es entfernt nur den letzten Knoten in / chats, und ich möchte den Knoten angeben, den chat/uidich entfernen möchte.

3)

      let chatRef = db.ref("/chats");
      chatRef.child("5ZuZvUyByDcbteclgpM0t08beVn1").remove();

Dies führte einfach dazu, dass nichts passierte. Ich hatte dies in einem Versuch / Fang, und das Klicken auf "Löschen" führte zum Ausführen des Versuchs, aber es wurden keine Fehler abgefangen. Und nichts ist in der Datenbank passiert.

4)

      let chatRef = db.ref("/chats/MJy8cxO85ldEnDScsWZ");
      chatRef.remove();

Gleiches Ergebnis wie Nummer 3 oben - nichts ist passiert und es wurden keine Fehler beim Versuch / Fang abgefangen.

UPDATE: Ich habe Folgendes versucht, aber dadurch werden die gesamten chatsDaten entfernt und nicht nur der Knoten, den ich löschen möchte:

      let chatRef = db.ref("/chats");
      chatRef
        .orderByChild("uid")
        .equalTo(chatId)
        .once("value")
        .then(function (snapshot) {
          snapshot.forEach((childSnapshot) => {
            //remove each child
            chatRef.child(childSnapshot.key).remove();
          });
        });

Antworten

1 DougStevenson Oct 19 2020 at 07:52

Ihr viertes Beispiel sollte funktionieren, außer Sie haben einen Tippfehler:

let chatRef = db.ref("/chats/MJy8cxO85ldEnDScsWZ");

Es sollte stattdessen sein:

let chatRef = db.ref("/chats/-MJy8cxO85ldEnDScsWZ");

Sie vermissen das "-" vor "M".