Grenzwerte für Echtzeitdatenbanken

Im Folgenden finden Sie Einschränkungen für die Datenspeicherung und Vorgänge in der Firebase-Echtzeitdatenbank. Um über diese Grenzen hinaus zu skalieren, verwenden Sie mehrere Datenbanken .

Global

Betrieb Grenze Beschreibung
Gleichzeitige Verbindungen 200.000*

Eine gleichzeitige Verbindung entspricht einem Mobilgerät, einem Browser-Tab oder einer Server-App, die mit der Datenbank verbunden ist.

Dies entspricht nicht der Gesamtzahl der Benutzer Ihrer App, da Ihre Benutzer nicht alle gleichzeitig eine Verbindung herstellen. Beispielsweise haben Apps mit 10 Millionen monatlich aktiven Nutzern in der Regel weniger als 200.000 gleichzeitige Verbindungen. Ihre maximale Anzahl gleichzeitiger Verbindungen hängt von Ihrer Gesamtbenutzerzahl und der durchschnittlichen Zeit ab, die Benutzer in Ihrer App verbringen.

Wenn Sie jedoch über diese Grenze hinaus skalieren müssen, versuchen Sie es mit mehreren Datenbanken .

*Das Spark-Plan-Limit für gleichzeitige Verbindungen beträgt 100.

Gleichzeitige Antworten, die von einer einzigen Datenbank gesendet werden. ~100.000/Sekunde Zu den Antworten gehören gleichzeitige Broadcast- und Lesevorgänge, die vom Server zu einem bestimmten Zeitpunkt von einer einzelnen Datenbank gesendet werden. Das Limit bezieht sich auf die Datenpakete, die jeden einzelnen Lese- oder Broadcast-Vorgang darstellen, einschließlich Push-Benachrichtigungen, die von der Datenbank gesendet werden. Diese Anleitung gilt für anhaltende Last, aber die Datenbank kann gelegentlich höhere Bursts verarbeiten.
Anzahl der Cloud Functions-Funktionen, die durch einen einzelnen Schreibvorgang ausgelöst wurden 1000; oder für Cloud Functions v2 500 pro Region Es gibt zwar keine Begrenzung dafür, wie viele Lese- oder Schreibvorgänge Sie von einer einzelnen Funktion auslösen können, aber ein einzelner Datenbank-Schreibvorgang kann nur 1000 Funktionen oder 500 Funktionen pro Region für Cloud Functions v2 auslösen.

Cloud-Funktionen können nur durch Schreibvorgänge ausgelöst werden, und jede Funktion kann auch weitere Schreibvorgänge auslösen, die weitere Funktionen auslösen (jede mit ihrer eigenen Beschränkung auf 1000 Funktionen oder 500 pro Region).

Größe eines einzelnen Ereignisses, das durch einen Schreibvorgang ausgelöst wird 1MB Die Größe eines Events setzt sich aus folgenden Werten zusammen:
  1. Die vorhandenen Daten am Schreibort.
  2. Der Aktualisierungswert oder das Datendelta, das erforderlich ist, um die neuen Daten an den Speicherort zu schreiben.
Schreibvorgänge, die größer als 1 MB sind, sind in der Datenbank erfolgreich, lösen jedoch keinen Funktionsaufruf aus.
Datenübertragung an Cloud Functions 10 MB/s dauerhaft Die Rate der Ereignisdaten, die an Cloud Functions weitergeleitet werden können.

Datenbaum

Eigentum Grenze Beschreibung
Maximale Tiefe der untergeordneten Knoten 32 Jeder Pfad in Ihrer Datenstruktur muss weniger als 32 Ebenen tief sein.
Länge eines Schlüssels 768 Bytes Schlüssel sind UTF-8-codiert und dürfen keine Zeilenumbrüche oder eines der folgenden Zeichen enthalten:
. $ # [ ] / oder beliebige ASCII-Steuerzeichen (0x00 - 0x1F und 0x7F)
Maximale Größe einer Zeichenfolge 10MB Die Daten sind UTF-8-kodiert.

Liest

Beschreibung Grenze Anmerkungen
Größe einer einzelnen Antwort, die von der Datenbank bereitgestellt wird 256MB Die Größe der aus der Datenbank heruntergeladenen Daten an einem einzelnen Speicherort sollte weniger als 256 MB für jeden Lesevorgang betragen.

Um einen Lesevorgang an einem größeren Standort durchzuführen, versuchen Sie eine der folgenden Optionen:

Gesamtzahl der Knoten in einem Pfad mit Listenern oder Abfragen darauf 75 Millionen* Sie können Pfade mit mehr als 75 Millionen Knoten (kumulativ) nicht abhören oder abfragen. Sie können jedoch weiterhin untergeordnete Knoten abhören oder abfragen. Versuchen Sie, tiefer in den Pfad einzudringen oder separate Listener oder Abfragen für spezifischere Teile des Pfads zu erstellen.

* Pfade mit insgesamt mehr als 30.000 Knoten können in der Datenanzeige in der Firebase-Konsole nicht angezeigt werden.

Dauer, die eine einzelne Abfrage ausgeführt werden kann 15 Minuten* Eine einzelne Abfrage kann bis zu 15 Minuten lang ausgeführt werden, bevor sie fehlschlägt.

*Eine einzelne Abfrage, die in der Firebase-Konsole ausgeführt wird, kann nur bis zu 5 Sekunden lang ausgeführt werden, bevor sie fehlschlägt.

Schreibt

Beschreibung Grenze Anmerkungen
Schreibrate 1.000 Schreibvorgänge/Sekunde Das Limit für Schreibvorgänge pro Sekunde in einer einzelnen Datenbank. Wenn Sie mehr als 1.000 Schreibvorgänge pro Sekunde aufrechterhalten, ist Ihre Schreibaktivität möglicherweise ratenbegrenzt, obwohl dies kein festes Limit ist.
Größe einer einzelnen Schreibanforderung an die Datenbank 256 MB von der REST-API; 16 MB aus den SDKs. Die Gesamtdaten in jedem Schreibvorgang sollten weniger als 256 MB betragen. Multipath-Updates unterliegen derselben Größenbeschränkung.
Bytes geschrieben 64 MB/Minute Die Gesamtzahl der Bytes, die zu einem beliebigen Zeitpunkt durch gleichzeitige Schreibvorgänge in die Datenbank geschrieben wurden.