Nutzung und Grenzen

Verwenden Sie diesen Leitfaden, um die Cloud Firestore-Grenzwerte zu verstehen, und sehen Sie sich die Cloud Firestore-Preise an, um eine vollständige, detaillierte Erklärung der Cloud Firestore-Kosten zu erhalten, einschließlich Dingen, auf die Sie achten sollten.

Überwachen Sie Ihre Nutzung

Um Ihre Cloud Firestore-Nutzung zu überwachen, öffnen Sie die Registerkarte „Cloud Firestore- Nutzung in der Firebase-Konsole. Verwenden Sie das Dashboard, um Ihre Nutzung über verschiedene Zeiträume hinweg zu messen.

Detaillierte Nutzung in der Google Cloud Console

Wenn Sie ein Firebase-Projekt erstellen, erstellen Sie auch ein Google Cloud-Projekt. Die Seiten „Cloud Firestore API-Kontingente“ und „App Engine-Kontingente“ in der Google Cloud-Konsole verfolgen die Nutzung und Kontingentinformationen von Cloud Firestore.

Kostenloses Kontingent

Cloud Firestore bietet ein kostenloses Kontingent, mit dem Sie kostenlos mit Ihrer (default) Datenbank beginnen können. Die kostenlosen Kontingentbeträge sind unten aufgeführt. Wenn Sie mehr Kontingent benötigen, müssen Sie die Abrechnung für Ihr Google Cloud-Projekt aktivieren .

Die Quoten werden täglich angewendet und gegen Mitternacht pazifischer Zeit zurückgesetzt.

Nur die (default) Datenbank ist für das kostenlose Kontingent qualifiziert.

Kostenloses Kontingent Quote
Gespeicherte Daten 1 GiB
Dokument liest 50.000 pro Tag
Dokument schreibt 20.000 pro Tag
Dokument wird gelöscht 20.000 pro Tag
Ausgehende Datenübertragung 10 GiB pro Monat

Die folgenden Vorgänge und Funktionen beinhalten keine kostenlose Nutzung. Sie müssen die Abrechnung aktivieren, um diese Funktionen nutzen zu können:

  • Verwendung benannter (nicht standardmäßiger) Datenbanken
  • TTL löscht
  • PITR-Daten
  • Backup-Daten
  • Vorgänge wiederherstellen

Weitere Informationen zur Abrechnung dieser Funktionen finden Sie unter Speicherpreise .

Standardgrenzen

Die folgenden Tabellen zeigen die Grenzwerte, die für Cloud Firestore gelten. Sofern nicht anders angegeben, handelt es sich hierbei um harte Grenzwerte.

Datenbanken

Grenze Einzelheiten
Maximale Anzahl von Datenbanken pro Projekt

100

Sie können sich an den Support wenden, um eine Erhöhung dieses Limits anzufordern.

Sammlungen, Dokumente und Felder

Grenze Einzelheiten
Einschränkungen für Sammlungs-IDs
  • Muss gültige UTF-8-Zeichen sein
  • Darf nicht länger als 1.500 Byte sein
  • Darf keinen Schrägstrich ( / ) enthalten.
  • Kann nicht ausschließlich aus einem einzelnen Punkt ( . ) oder doppelten Punkten ( .. ) bestehen.
  • Kann nicht mit dem regulären Ausdruck __.*__ übereinstimmen
Maximale Tiefe der Untersammlungen 100
Einschränkungen für Dokument-IDs
  • Muss gültige UTF-8-Zeichen sein
  • Darf nicht länger als 1.500 Byte sein
  • Darf keinen Schrägstrich ( / ) enthalten.
  • Kann nicht ausschließlich aus einem einzelnen Punkt ( . ) oder doppelten Punkten ( .. ) bestehen.
  • Kann nicht mit dem regulären Ausdruck __.*__ übereinstimmen
  • Wenn Sie Datastore-Entitäten in eine Firestore-Datenbank importieren, werden numerische Entitäts-IDs als __id[0-9]+__ angezeigt.
Maximale Größe für einen Dokumentnamen 6 KiB
Maximale Größe für ein Dokument 1 MiB (1.048.576 Byte)
Einschränkungen für Feldnamen Muss gültige UTF-8-Zeichen sein
Maximale Größe eines Feldnamens 1.500 Byte
Einschränkungen für Feldwege
  • Feldnamen müssen durch einen einzelnen Punkt ( . ) getrennt werden.
  • Kann als durch Punkte getrennte ( . ) Zeichenfolge von Segmenten übergeben werden, wobei jedes Segment entweder ein einfacher Feldname oder ein Feldname in Anführungszeichen ist (unten definiert).
Ein einfacher Feldname ist ein Name, bei dem alle folgenden Aussagen zutreffen:
  • Enthält nur die Zeichen az , AZ , 0-9 und Unterstrich ( _ ).
  • Beginnt nicht mit 0-9
Ein in Anführungszeichen gesetzter Feldname beginnt und endet mit dem Backtick-Zeichen ( ` ). Beispielsweise bezieht sich foo.`x&y` auf das x&y -Feld, das unter dem foo Feld verschachtelt ist. Um einen Feldnamen mit dem Backtick-Zeichen zu erstellen, maskieren Sie das Backtick-Zeichen mit dem Backslash-Zeichen ( \ ). Der Einfachheit halber können Sie Feldnamen in Anführungszeichen vermeiden, indem Sie den Feldpfad als FieldPath-Objekt übergeben ( siehe beispielsweise JavaScript FieldPath ).
Maximale Größe eines Feldpfades 1.500 Byte
Maximale Größe eines Feldwerts 1 MiB – 89 Byte (1.048.487 Byte)
Maximale Feldtiefe in einer Karte oder einem Array 20

Schreibvorgänge und Transaktionen

Zusätzlich zu diesen Grenzwerten sollten Sie sich auch mit den Best Practices für skalierbares Design vertraut machen.

Grenze Einzelheiten
Maximale API-Anfragegröße 10 MiB
Zeitlimit für eine Transaktion 270 Sekunden, mit einer Leerlaufzeit von 60 Sekunden

Indizes

Für Einzelfeldindizes und zusammengesetzte Indizes gelten die folgenden Einschränkungen:

Grenze Einzelheiten
Maximale Anzahl zusammengesetzter Indizes für eine Datenbank
Maximale Anzahl von Einzelfeldkonfigurationen für eine Datenbank

Eine Konfiguration auf Feldebene kann mehrere Konfigurationen für dasselbe Feld enthalten. Beispielsweise zählen eine Ausnahme von der Einzelfeldindizierung und eine TTL-Richtlinie für dasselbe Feld als eine Feldkonfiguration für den Grenzwert.

Maximale Anzahl von Indexeinträgen für jedes Dokument

40.000

Die Anzahl der Indexeinträge ist die Summe der folgenden Werte für ein Dokument:

  • Die Anzahl der Einzelfeld-Indexeinträge
  • Die Anzahl der zusammengesetzten Indexeinträge

Um zu sehen, wie Cloud Firestore ein Dokument und eine Reihe von Indizes in Indexeinträge umwandelt, sehen Sie sich dieses Beispiel für die Anzahl der Indexeinträge an.

Maximale Anzahl von Feldern in einem zusammengesetzten Index 100
Maximale Größe eines Indexeintrags

7,5 KiB

Informationen dazu, wie Cloud Firestore die Indexeintragsgröße berechnet, finden Sie unter Indexeintragsgröße .

Maximale Summe der Größen der Indexeinträge eines Dokuments

8 MiB

Die Gesamtgröße ist die Summe der folgenden Werte für ein Dokument:

  • Die Summe der Größe der Einzelfeld-Indexeinträge eines Dokuments
  • Die Summe der Größe der zusammengesetzten Indexeinträge eines Dokuments
  • Maximale Größe eines indizierten Feldwerts

    1500 Byte

    Feldwerte über 1500 Byte werden abgeschnitten. Abfragen mit abgeschnittenen Feldwerten können inkonsistente Ergebnisse liefern.

    Lebensdauer (TTL)

    Grenze Einzelheiten
    Maximale Anzahl von Einzelfeldkonfigurationen für eine Datenbank

    Eine Konfiguration auf Feldebene kann mehrere Konfigurationen für dasselbe Feld enthalten. Beispielsweise zählen eine Ausnahme von der Einzelfeldindizierung und eine TTL-Richtlinie für dasselbe Feld als eine Feldkonfiguration für den Grenzwert.

    Export Import

    Für verwaltete Import- und Exportvorgänge gelten die folgenden Grenzwerte:

    Grenze Einzelheiten
    Maximal zulässige Gesamtzahl an Export- und Importanfragen für ein Projekt pro Minute 20
    Maximale Anzahl gleichzeitiger Exporte und Importe 50
    Maximale Anzahl von Sammlungs-ID-Filtern für Export- und Importanfragen 100

    Sicherheitsregeln

    Grenze Einzelheiten
    Maximale Anzahl von exists() , get() - und getAfter() Aufrufen pro Anfrage
    • 10 für Einzeldokumentanfragen und Abfrageanfragen.
    • 20 für das Lesen mehrerer Dokumente, Transaktionen und Batch-Schreibvorgänge. Für jeden Vorgang gilt auch die bisherige Grenze von 10.

      Stellen Sie sich beispielsweise vor, Sie erstellen eine Batch-Schreibanforderung mit drei Schreibvorgängen und Ihre Sicherheitsregeln verwenden zwei Dokumentzugriffsaufrufe, um jeden Schreibvorgang zu validieren. In diesem Fall verwendet jeder Schreibvorgang zwei seiner 10 Zugriffsaufrufe und die gestapelte Schreibanforderung verwendet 6 seiner 20 Zugriffsaufrufe.

    Das Überschreiten eines dieser Grenzwerte führt zu einem Fehler, bei dem die Berechtigung verweigert wurde.

    Einige Dokumentzugriffsaufrufe werden möglicherweise zwischengespeichert und zwischengespeicherte Aufrufe werden nicht auf die Grenzwerte angerechnet.

    Maximale Tiefe der verschachtelten match Anweisung 10
    Maximale Pfadlänge in Pfadsegmenten, die innerhalb einer Reihe verschachtelter match Anweisungen zulässig ist 100
    Maximal zulässige Anzahl von Pfaderfassungsvariablen innerhalb einer Reihe verschachtelter match Anweisungen 20
    Maximale Funktionsaufruftiefe 20
    Maximale Anzahl von Funktionsargumenten 7
    Maximale Anzahl von let Variablenbindungen pro Funktion 10
    Maximale Anzahl rekursiver oder zyklischer Funktionsaufrufe 0 (nicht erlaubt)
    Maximale Anzahl ausgewerteter Ausdrücke pro Anfrage 1.000
    Maximale Größe eines Regelsatzes Regelsätze müssen zwei Größenbeschränkungen einhalten:
    • eine 256-KB-Grenze für die Größe der Regelsatztextquelle, die über die Firebase-Konsole oder über die CLI mithilfe von firebase deploy veröffentlicht wird.
    • eine 250-KB-Grenze für die Größe des kompilierten Regelsatzes, die sich ergibt, wenn Firebase die Quelle verarbeitet und im Back-End aktiviert.

    Ausgaben verwalten

    Um unerwartete Belastungen auf Ihrer Rechnung zu vermeiden, legen Sie monatliche Budgets und Benachrichtigungen fest.

    Legen Sie ein Monatsbudget fest

    Um Ihre Cloud Firestore-Kosten zu verfolgen, erstellen Sie in der Google Cloud Console ein Monatsbudget. Budgets schränken Ihre Nutzung nicht ein, Sie können jedoch Benachrichtigungen einrichten, die Sie benachrichtigen, wenn Sie sich Ihren geplanten Kosten für den Monat nähern oder diese überschreiten.

    Um ein Budget festzulegen, gehen Sie in der Google Cloud Console zum Abschnitt „Abrechnung“ und erstellen Sie ein Budget für Ihr Cloud-Rechnungskonto. Sie können die Standard-Benachrichtigungseinstellungen verwenden oder die Benachrichtigungen ändern, um Benachrichtigungen zu unterschiedlichen Prozentsätzen Ihres Monatsbudgets zu senden.

    Erfahren Sie mehr über das Einrichten von Budgets und Budgetbenachrichtigungen .