Firebase Realtime Database-Vorgangstypen

Profiler-Befehl für Firebase Realtime Database

Verwenden Sie den folgenden Befehl, um einen Bericht zur Geschwindigkeit und Bandbreitennutzung für Vorgänge in Ihrer Realtime Database-Instanz zu erstellen:

firebase database:profile
Optionen für Meldungen Beschreibung
-h, --help Informationen zur Ausgabenutzung.
-o, --output FILENAME Speichert die Ausgabe in der angegebenen Datei.
-i, --input FILENAME Der Bericht wird anhand der angegebenen Datei anstelle von Logs des Servers gestreamt.
-d, --duration SECONDS Erfassen Sie Informationen zur Datenbanknutzung für die angegebene Anzahl von Sekunden.
--raw Geben Sie die erfassten Rohdaten als durch Zeilenumbruch getrenntes JSON aus.

Vorgangsarten

Gleichzeitige Verbindung

Dieser Vorgang spiegelt Echtzeitverbindungen zur Datenbank wider, z. B. wenn ein neuer Client eine Verbindung über ein SDK herstellt. RESTful-Verbindungen werden bei Vorgängen für gleichzeitige Verbindungen nicht widergespiegelt.

{
    "name": "concurrent-connect",
    "timestamp": 1484776334900
}

gleichzeitige Trennung

Gleichzeitige Trennungen spiegeln eine Verbindung wider, die von der Datenbank getrennt wurde, z. B. wenn ein Client die Verbindung trennt oder abmeldet.

{
    "name": "concurrent-disconnect",
    "timestamp": 1484776341844
}

realtime-write

Schreibanfragen von Echtzeitverbindungen. Beispiel: set()- und push()-Vorgänge für Webclients. Löschanfragen werden ebenfalls als realtime-write-Vorgänge gezählt und spiegeln Schreibvorgänge mit einem Wert von 0 Byte wider.

{
    "allowed": true, // If security rules allow the operation
    "bytes": 1,
    "millis": 2,
    "name": "realtime-write",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538763
}

realtime-transaction

Dieser Vorgangstyp umfasst Transaktionen, die über Echtzeitverbindungen durchgeführt wurden. Wiederholte Transaktionen können das Ergebnis von fehlgeschlagenen Versuchen und Wiederholungen sein.

{
    "allowed": true,
    "bytes": 20,
    "millis": 2,
    "name": "realtime-transaction",
    "path": [
        "foo"
    ],
    "timestamp": 1484776854610
}

Echtzeit-Update

Diese Echtzeitvorgänge für Aktualisierungen spiegeln übermäßige Anzahl bestimmter Daten wider, nicht die allgemeineren Schreibvorgänge in realtime-write.

{
    "allowed": true,
    "bytes": 5,
    "millis": 2,
    "name": "realtime-update",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538769
}

listener-listen

Diese Vorgänge spiegeln die ursprüngliche Anfrage nach Daten an einem bestimmten Standort von einem Client wider. Zum Beispiel die Methoden on() oder once() für Webclients.

{
    "allowed": true,
    "bytes": 0,
    "millis": 26,
    "name": "listener-listen",
    "path": [
        "foo"
    ],
    "querySet": [],
    "timestamp": 1484776335024,
    "unIndexed": false
}

Hörer-Broadcast

Dieser Vorgang umfasst die Daten, die vom Server an alle Clients gesendet werden, die nach jedem Schreib- und Aktualisierungsvorgang an einem bestimmten Standort überwachen. Die Änderung an den Daten führt zu einem Broadcast-Vorgang. Wenn keine Clients überwacht werden, sehen Sie möglicherweise 0 Aktualisierungen.

{
    "bytes": 56, // Total bytes sent across clients
    "clientsUpdated": 3, // This may be 0 if no clients are listening
    "millis": 17,
    "name": "listener-broadcast",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969928
}

listener-unlisten

Diese Vorgänge spiegeln Überwachungsclients wider, die das Überwachen der Trennmethoden beenden oder beenden (z. B. off() für Web oder removeAllObservers für iOS).

{
    "name": "listener-unlisten",
    "path": [
        "foo"
    ],
    "timestamp": 1484776335044
}

Rest-Read

GET-Anfragen über die REST API

{
    "allowed": true,
    "bytes": 348, // This would be 0 if the read data was null
    "millis": 26,
    "name": "rest-read",
    "path": [],
    "querySet": [
        {
            "default": true,
            "endIndexValue": "[MAX_NAME]",
            "equality": false,
            "index": {},
            "limit": null,
            "range": false,
            "simpleLimit": false,
            "startIndexValue": "[MIN_NAME]",
            "viewFrom": null
        }
    ],
    "timestamp": 1484775747416
}

Rest-Write

PUT- und POST-Anfragen über die REST API. DELETE-Anfragen spiegeln rest-write-Vorgänge mit 0 Byte wider.

{
    "allowed": true,
    "bytes": 13,
    "millis": 116,
    "name": "rest-write",
    "path": [],
    "timestamp": 1484775917216
}

Rest-Transaktion

Verwenden Sie für transaktionsähnliches Verhalten bedingte Anfragen. Der Vorgang rest-transaction erfasst Anfragen mit den Headern Etag oder if-match.

{
    "allowed": true,
    "bytes": 13,
    "millis": 116,
    "name": "rest-transaction",
    "path": [],
    "timestamp": 1484775917216
}

rest-Update

Aktualisierungen über die REST API spiegeln PATCH-Anfragen wider.

{
    "allowed": true,
    "bytes": 5,
    "millis": 11,
    "name": "rest-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-put

Diese Vorgänge spiegeln das Hinzufügen von onDisconnect-Listenern für Schreibvorgänge wider. Beispiel: Sie verwenden onDisconnect().setValue().

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-put",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-update

Diese Vorgänge spiegeln das Hinzufügen von onDisconnect-Listenern zum Aktualisieren von Vorgängen wider. Beispiel: Sie verwenden onDisconnect().updateChildren().

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-cancel

Diese Vorgänge spiegeln das Entfernen der onVerbindungs-Listener wider. Beispiel: Sie verwenden onDisconnect().set().cancel().

{
    "millis": 2,
    "name": "on-disconnect-cancel",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

run-on-disconnect

Diese Vorgänge spiegeln das Auslösen von onDisconnect-Listenern wider. Wenn die Verbindung eines Realtime-Clients getrennt wird, nachdem mindestens ein onDisconnect-Listener hinzugefügt wurde, zeichnet der Profiler einen einzelnen run-on-disconnect-Vorgang auf, um die aggregierten Byte und Zeit aller ausgelösten onDisconnect-Listener widerzuspiegeln.

{
    "bytes": 4,
    "millis": 2,
    "name": "run-on-disconnect",
    "timestamp": 1484775969930
}