Nutzung und Limits

In diesem Leitfaden finden Sie Informationen zu den Limits für Cloud Firestore. Unter Cloud Firestore-Preise finden Sie eine ausführliche Erklärung der Cloud Firestore-Kosten, einschließlich Hinweisen zu möglichen Problemen.

Nutzung im Blick behalten

Wenn Sie die Cloud Firestore-Nutzung im Blick behalten möchten, öffnen Sie in der Firebase-Konsole den Tab Cloud Firestore Nutzung. Im Dashboard können Sie Ihre Nutzung in verschiedenen Zeiträumen analysieren.

Detaillierte Informationen zur Nutzung in der Google Cloud-Konsole

Wenn Sie ein Firebase-Projekt erstellen, legen Sie auch ein Google Cloud-Projekt an. Auf den Seiten Cloud Firestore API-Kontingente und App Engine Kontingente in der Google Cloud Console werden Informationen zur Cloud Firestore-Nutzung und zu Kontingenten erfasst.

Kostenloses Kontingent

Cloud Firestore bietet ein kostenloses Kontingent, mit dem Sie kostenlos mit Ihrer (default)-Datenbank loslegen können. Die Größen dieser Gratiskontingente sind unten aufgelistet. Wenn Sie ein darüber hinausgehendes Kontingent benötigen, müssen Sie für Ihr Google Cloud-Projekt die Abrechnung aktivieren.

Kontingente gelten je Tag und werden gegen Mitternacht (UTC -7/-8) zurückgesetzt.

Nur die (default)-Datenbank kommt für das kostenlose Kontingent infrage.

Kostenlose Stufe Kontingent
Gespeicherte Daten 1 GiB
Lesevorgänge für das Dokument 50.000 pro Tag
Schreibvorgänge für das Dokument 20.000 pro Tag
Löschvorgänge für das Dokument 20.000 pro Tag
Ausgehende Datenübertragung 10 GiB pro Monat

Die folgenden Vorgänge und Funktionen sind nicht kostenlos. Sie müssen die Abrechnung aktivieren, um die folgenden Funktionen verwenden zu können:

  • Verwendung benannter (nicht standardmäßiger) Datenbanken
  • TTL-Löschungen
  • PITR-Daten
  • Daten sichern
  • Vorgänge wiederherstellen

Weitere Informationen zur Abrechnung dieser Funktionen finden Sie unter Speicherpreise.

Standardlimits

In den folgenden Tabellen sind die Limits für Cloud Firestore aufgeführt. Sofern nicht anders angegeben, sind dies feste Beschränkungen.

Datenbanken

Limit Details
Maximale Anzahl an Datenbanken pro Projekt

100

Sie können den Support kontaktieren, um eine Erhöhung dieses Limits zu beantragen.

Sammlungen, Dokumente und Felder

Limit Details
Einschränkungen für Sammlungs-IDs
  • Müssen gültige UTF-8-Zeichen sein
  • Dürfen nicht mehr als 1.500 Byte umfassen
  • Dürfen keinen Schrägstrich (/) enthalten
  • Dürfen nicht ausschließlich aus einzelnen (.) oder doppelten Punkten (..) bestehen.
  • Dürfen nicht dem regulären Ausdruck __.*__ entsprechen.
Maximale Tiefe von Untersammlungen 100
Einschränkungen für Dokument-IDs
  • Müssen gültige UTF-8-Zeichen sein
  • Dürfen nicht mehr als 1.500 Byte umfassen
  • Dürfen keinen Schrägstrich (/) enthalten
  • Dürfen nicht ausschließlich aus einzelnen (.) oder doppelten Punkten (..) bestehen.
  • Dürfen nicht dem regulären Ausdruck __.*__ entsprechen.
  • Wenn Sie Datastore-Entitäten in eine Firestore-Datenbank importieren, werden die numerischen Entitäts-IDs als __id[0-9]+__ bereitgestellt.
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
  • Müssen gültige UTF-8-Zeichen sein
  • Dürfen nicht dem regulären Ausdruck __.*__ entsprechen.
Maximale Größe für einen Feldnamen 1.500 Byte
Einschränkungen für Feldpfade
  • Müssen Feldnamen mit einzelnem Punkt (.) trennen
  • Kann als durch Punkte (.) getrennter String von Segmenten übergeben werden, wobei jedes Segment entweder ein einfacher Feldname oder ein in Anführungszeichen gesetzter Feldname ist (siehe unten).
Ein einfacher Feldname liegt vor, wenn alle folgenden Bedingungen erfüllt sind:
  • Enthält ausschließlich die Zeichen a-z, A-Z, 0-9 und Unterstrich (_)
  • Beginnt nicht mit 0-9
Ein in Anführungszeichen gesetzter Feldname beginnt und endet mit dem Backtick-Zeichen (`). foo.`x&y` bezieht sich beispielsweise auf das Feld x&y, das im Feld foo verschachtelt ist. Wenn Sie einen Feldnamen mit dem Backtick-Zeichen erstellen möchten, müssen Sie das Backtick-Zeichen mit dem umgekehrten Schrägstrich (\) ausschließen. Sie können anstelle von Feldnamen in Anführungszeichen den Feldpfad als FieldPath-Objekt übergeben (siehe z. B. JavaScript FieldPath).
Maximale Größe eines Feldpfads 1.500 Byte
Maximale Größe eines Feldwerts 1 MiB – 89 Byte (1.048.487 Byte)
Maximale Tiefe von Feldern in einer Karte oder einem Array

20

Mit Karten- und Arrayfeldern wird die Gesamttiefe eines Objekts um eine Ebene erhöht. Das folgende Objekt hat beispielsweise eine Gesamttiefe von drei Ebenen:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Schreibvorgänge und Transaktionen

Zusätzlich zu diesen Limits sollten Sie sich auch die Best Practices für skalierbares Design ansehen.

Limit Details
Maximale API-Anfragengröße 10 MiB
Zeitlimit für eine Transaktion 270 Sekunden bei einer Inaktivitätsablaufzeit von 60 Sekunden
Maximale Anzahl Feldtransformationen, die für ein einzelnes Dokument in einem Commit-Vorgang oder in einer Transaktion ausgeführt werden können 500

Indexe

Die folgenden Limits gelten für Einzelfeld-Indexe und zusammengesetzte Indexe:

Limit Details
Maximale Anzahl zusammengesetzter Indexe für eine Datenbank
  • 200, wenn Sie die Abrechnung für Ihr Google Cloud-Projekt nicht aktiviert haben.

    Wenn Sie ein darüber hinausgehendes Kontingent benötigen, müssen Sie für Ihr Google Cloud-Projekt die Abrechnung aktivieren.

  • 500, wenn Sie die Abrechnung für Ihr Google Cloud-Projekt aktivieren.

    Sie können den Support kontaktieren, um eine Erhöhung dieses Limits zu beantragen.

Maximale Anzahl von Konfigurationen für Einzelfelder für eine Datenbank
  • 200, wenn Sie die Abrechnung für Ihr Google Cloud-Projekt nicht aktiviert haben.

    Wenn Sie ein darüber hinausgehendes Kontingent benötigen, müssen Sie für Ihr Google Cloud-Projekt die Abrechnung aktivieren.

  • 500, wenn Sie die Abrechnung für Ihr Google Cloud-Projekt aktivieren.

Eine Konfiguration auf Feldebene kann mehrere Konfigurationen für dasselbe Feld enthalten. So werden beispielsweise eine Ausnahme für die Einzelfeldindexierung und eine TTL-Richtlinie für dasselbe Feld auf das Limit angerechnet.

Maximale Anzahl Indexeinträge für jedes Dokument

40.000

Die Anzahl der Indexeinträge ist die Summe von Folgendem für ein Dokument:

  • Anzahl der Einzelfeld-Indexeinträge
  • Anzahl zusammengesetzter Indexeinträge

Informationen dazu, wie Cloud Firestore ein Dokument und einen Indexsatz in Indexeinträge umwandelt, finden Sie in diesem Beispiel für das Zählen von Indexeinträgen.

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

7,5 KB

Informationen dazu, wie Cloud Firestore die Größe von Indexeinträgen berechnet, finden Sie unter Größe des Indexeintrags.

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

8 MiB

Die Gesamtgröße ist die Summe von Folgendem für ein Dokument:

  • Summe der Größen der Einzelfeld-Indexeinträge eines Dokuments
  • Summe der Größen der zusammengesetzten Indexeinträge eines Dokuments
  • Maximale Größe des Werts eines indexierten Felds

    1.500 Byte

    Feldwerte über 1.500 Byte werden abgeschnitten. Abfragen mit abgeschnittenen Feldwerten können inkonsistente Ergebnisse zurückgeben.

    Gültigkeitsdauer (TTL)

    Limit Details
    Maximale Anzahl von Konfigurationen für Einzelfelder für eine Datenbank
    • 200, wenn Sie die Abrechnung für Ihr Google Cloud-Projekt nicht aktiviert haben.

      Wenn Sie ein darüber hinausgehendes Kontingent benötigen, müssen Sie für Ihr Google Cloud-Projekt die Abrechnung aktivieren.

    • 500, wenn Sie die Abrechnung für Ihr Google Cloud-Projekt aktivieren.

    Eine Konfiguration auf Feldebene kann mehrere Konfigurationen für dasselbe Feld enthalten. So werden beispielsweise eine Ausnahme für die Einzelfeldindexierung und eine TTL-Richtlinie für dasselbe Feld auf das Limit angerechnet.

    Exportieren/Importieren

    Die folgenden Limits gelten für verwaltete Import- und Exportvorgänge:

    Limit Details
    Maximale Gesamtzahl der Export- und Importanfragen für ein Projekt, die pro Minute zulässig sind 20
    Maximale Anzahl gleichzeitiger Exporte und Importe 50
    Maximale Anzahl der Sammlungs-ID-Filter für Export- und Importanfragen 100

    Sicherheitsregeln

    Limit Details
    Maximale Anzahl exists()-, get()- und getAfter()-Aufrufe pro Anfrage
    • 10 für Einzeldokumentanfragen und Abfrage-Anfragen.
    • 20 für Lesevorgänge, Transaktionen und Batch-Schreibvorgänge für mehrere Dokumente. Das vorherige Limit von 10 gilt auch für jeden Vorgang.

      Angenommen, Sie erstellen eine Batch-Schreibanfrage mit 3 Schreibvorgängen und Ihre Sicherheitsregeln verwenden 2 Dokumentzugriffsaufrufe, um jeden Schreibvorgang zu validieren. In diesem Fall verwendet jeder Schreibvorgang 2 von seinen 10 Zugriffsaufrufen und die Batch-Schreibanfrage 6 von ihren 20 Zugriffsaufrufen.

    Das Überschreiten eines dieser Limits führt zu einem Fehler mit Berechtigungsverweigerung.

    Einige Dokumentzugriffsaufrufe können zwischengespeichert werden. Zwischengespeicherte Aufrufe werden nicht in die Limits einberechnet.

    Maximale Tiefe verschachtelter match-Anweisungen 10
    Maximale Pfadlänge in Pfadsegmenten, die innerhalb eines Satzes von verschachtelten match-Anweisungen zulässig ist 100
    Maximale Anzahl Pfaderfassungsvariablen, die in einem Satz verschachtelter match-Anweisungen zulässig ist 20
    Maximale Funktionsaufruftiefe 20
    Maximale Anzahl Funktionsargumente 7
    Maximale Anzahl let-Variablenbindungen pro Funktion 10
    Maximale Anzahl rekursiver oder zyklischer Funktionsaufrufe 0 (nicht zulässig)
    Maximale Anzahl bewerteter Ausdrücke pro Anfrage 1.000
    Maximale Größe eines Regelsatzes Regelsätze müssen zwei Größenbeschränkungen genügen:
    • Ein Limit von 256 KB für die Größe der Textquelle des Regelsatzes, die über die Firebase Console oder die Befehlszeile mit firebase deploy veröffentlicht wird.
    • Ein Limit von 250 KB für die Größe des kompilierten Regelsatzes, der entsteht, wenn Firebase die Quelle verarbeitet und im Backend aktiviert.

    Ausgaben verwalten

    Legen Sie Monatsbudgets und Benachrichtigungen fest, um unerwartete Kosten auf Ihrer Rechnung zu vermeiden.

    Monatsbudget festlegen

    Wenn Sie Ihre Cloud Firestore-Kosten im Blick behalten möchten, erstellen Sie in der Google Cloud-Konsole ein Monatsbudget. Budgets beschränken Ihre Nutzung nicht. Sie können jedoch Benachrichtigungen einrichten, um informiert zu werden, wenn Sie die geplanten Kosten für den Monat erreichen oder überschreiten.

    Wenn Sie ein Budget festlegen möchten, rufen Sie in der Google Cloud Console den Bereich Abrechnung auf und erstellen Sie ein Budget für Ihr Cloud Billing-Konto. Sie können die Standardeinstellungen für Benachrichtigungen verwenden oder die Benachrichtigungen so anpassen, dass sie bei verschiedenen Prozentsätzen Ihres Monatsbudgets gesendet werden.

    Weitere Informationen zum Einrichten von Budgets und Budgetbenachrichtigungen