2016-07-29 16 views
14

Read-only & Nicht-Echtzeit-Modus Browser-Leistung zu verbessern aktiviertFirebase: Read-only und Nicht-Echtzeit-Modus aktiviert Browser-Leistung zu verbessern

Nachricht erscheint in meinem Projekt und ich bin nicht in der Lage die Knoten als auch

auch löschen las ich diese https://groups.google.com/forum/#!topic/firebase-talk/qLxZCI8i47s

in dem es heißt:

Wenn Sie eine Menge von Knoten in Ihrer Firebase haben (sagen Tausend), brauchen wir ein neues Element für jeden Knoten und moderne Browser einfach haben ihre Grenzen, wie viele DOM-Elemente auf eine externen Seite

hinzufügen erstellen

Dort heißt es:

dieses Problem zu beheben, nicht laden sie Ihre Firebase Armaturenbrett an der Wurzel Ihrer Firebase, sondern laden sie

in der Hierarchie weiter unten

ich nicht bekommen, was es bedeutet

Wie komme ich zurück zu meinem Echtzeit-Dashboard?

Antwort

15

Wenn festgestellt wird, dass zu viele Knoten aus Ihrer Datenbank heruntergeladen werden, beendet die Firebase Console den Echtzeitmodus und wechselt in den schreibgeschützten Modus. In diesem Modus wird weniger Arbeit vom Browser benötigt, daher ist es wahrscheinlicher, dass der Browser performant bleibt.

Um in den Echtzeitmodus zurückzukehren, müssen Sie zu einem Standort mit weniger Knoten gehen. So sagen, dass Sie die Datenbank an der Wurzel beginnen Laden, bedeutet, dass die „Pseudo-Adressleiste“ am oberen Rand des Datenbaum sagen:

https://<your-project>.firebaseio.com/ 

Und dann die Liste der Elemente angezeigt. Klicken Sie nun auf die URL in diesem Pseudo-Adressleiste und ändern Sie es zu:

https://<your-project>.firebaseio.com/<one-of-your-keys> 

und schlug eingeben. Der Datenbaum wird nur mit dem Knoten von one-of-your-keys nach unten geladen und wechselt wahrscheinlich wieder in den Echtzeitmodus.

+6

Aber wie kann ich ein High-Level-Knoten löschen, die eine große Anzahl von Kindern hat, vom Browser? Aus irgendeinem Grund löschte sogar das programmatische Löschen des High-Level-Knotens mit einem Aufruf eines mutableData.setValue (null) innerhalb einer Transaktion das Löschen dieses Knotens für mich ... die Methode hatte früher funktioniert –

+4

Ok Entschuldigung, es sieht wie das Programm aus Löschen funktionierte für mich, brauchte nur ein paar Sekunden um im Browser wiedergegeben zu werden .... so Fazit: für Knoten mit großer nr. von Kindern kann ich nur programmgesteuert löschen, nicht aus dem Browser –

+2

@dangling_refrenz Wenig spät, aber Sie können tatsächlich High-Level-Knoten im Browser löschen. Sie können meine Antwort unten überprüfen. – Dallas

1

Ich habe das gleiche Problem ... Ich bin ein wenig überrascht, weil ich Firebase problemlos skalieren konnte, um große Datenmengen zu unterstützen (Beispiel Millionen Benutzer usw.).

Ich habe einen Knoten mit 80000 Sub-Knoten (jedes Objekt hat seine eigene Push-ID) und ich kann nicht löschen oder führen Sie keine Aktion auf es, weil die Echtzeit nicht funktioniert in der Firebase-Konsole.

Ich denke, der einzige Weg, um udate oder die Daten löschen sie über JAVA-Code zu tun ist :(

+1

Es hat nichts mit Firebase-Skalierbarkeit zu tun, es ist nur, dass sie Browser Editing für große Anzahl von Knoten beschränken – interrupt

0

mehrere Male versucht, die bestimmte Tasten laden ermüdend sein kann. Es ist eine Python-Bibliothek, die dies tun könnte leicht Sie.

http://ozgur.github.io/python-firebase/

ich brauchte eine Menge Schlüssel zu löschen und das half mir, dass in einem Rutsch zu tun.

+0

Links zu möglichen Lösungen sind immer willkommen, aber bitte fügen Sie einige Details für zukünftige Besucher, falls der Link nicht mehr verfügbar ist. –

2

Jeder Knotenschlüssel in Firebase ist eine Verknüpfung. Sie können einen Unterknoten in einer neuen Registerkarte öffnen und anschließend diesen Unterknoten und seine untergeordneten Elemente bearbeiten.

  1. Rechtsklick auf einer Unterknoten Sie

  2. Wählen Link in einem neuen Tab bearbeiten oder löschen

  3. Bearbeiten Sie den Unterknoten in dem neuen Registerkarte

28

Wenn Sie einen High-Level-Knoten löschen möchten, wenn dies aktiviert ist, empfehle ich dies zu tun.

Öffnen Sie einen Texteditor und geben Sie { } ein. Speichern Sie diese Datei als "blankJSON.json".

Gehen Sie zum Knoten auf hoher Ebene, den Sie löschen möchten, und wählen Sie ihn aus. Sobald er geöffnet ist und alle Knoten anzeigt, die entfernt werden sollen, wählen Sie die drei Balken oben rechts aus und wählen "JSON importieren" sicher sein, zuerst "JSON exportieren" Wenn Sie keine Backups haben, falls Sie hier einen Fehler machen). Importieren Sie die zuvor erstellte JSON-Datei mit dem Titel "blankJSON".

Dadurch werden alle darin enthaltenen Daten gelöscht.

Noch einmal, ich schlage vor, Sie machen eine Sicherungskopie, bevor Sie dies tun, Es ist extrem einfach, eine Sicherung zu machen und es ist viel einfacher als Sie denken, diese blankJSON auf den falschen Knoten hochladen und dann eine Menge wichtiger löschen Daten.

+2

Smart Solution, Danke – Kalpesh

+1

Sie gut :) danke – yarin

+1

Smart und einfache Lösung! – Himanshu

0

Was Sie tun können, ist eine OnClickListener zu haben und den Wert Entfernen Methode, um Ihre DatabaseReference zu nennen, wie folgt aus:

mCart.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      mDatabaseReference.removeValue(); 
     } 
    });