Tipi di operazioni di Firebase Realtime Database

Comando profiler di Firebase Realtime Database

Per generare un report sull'utilizzo della velocità e della larghezza di banda per le operazioni nell'istanza di Realtime Database, utilizza il seguente comando:

firebase database:profile
Opzioni per i flag Descrizione
-h, --help Genera informazioni sull'utilizzo.
-o, --output FILENAME Salva l'output nel file specificato.
-i, --input FILENAME Genera il report in base al file specificato, anziché trasmettere i log dal server.
-d, --duration SECONDS Raccogli informazioni sull'utilizzo del database per il numero di secondi specificato.
--raw Restituisce come output le statistiche non elaborate raccolte come JSON delimitato da una nuova riga.

Tipi di operazioni

connessione-simultanea

Questa operazione riflette le connessioni in tempo reale al database, ad esempio quando un nuovo client si connette tramite un SDK. Le connessioni RESTful non si riflettono nelle operazioni di connessione simultanea.

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

disconnetti-contemporaneamente

Le disconnessioni simultanee riflettono una connessione disconnessa dal database (ad esempio, quando un client si disconnette o si disconnette).

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

realtime-write

Richieste di scrittura da connessioni in tempo reale. Ad esempio, le operazioni set() e push() per i client web. Le richieste di eliminazione vengono conteggiate anche come operazioni realtime-write e riflettono le scritture di 0 byte.

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

realtime-transaction

Questo tipo di operazione include le transazioni condotte tramite connessioni in tempo reale. Le transazioni ripetute possono essere il risultato di tentativi non riusciti e nuovi tentativi.

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

aggiornamento-in-tempo reale

Queste operazioni in tempo reale per gli aggiornamenti riflettono la sovrascrittura di dati specifici, non le operazioni di scrittura più generali in realtime-write.

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

listener-listen

Queste operazioni riflettono la richiesta iniziale di dati in una località specifica da un cliente. Ad esempio, i metodi on() o once() per i client web.

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

ascoltatore-trasmissione

Questa operazione riguarda i dati inviati dal server a tutti i client in ascolto in una determinata posizione dopo ogni operazione di scrittura e aggiornamento. La modifica dei dati porta a un'operazione di trasmissione. Tuttavia, potresti vedere 0 aggiornamenti se non ci sono client in ascolto.

{
    "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

Queste operazioni riflettono i client di ascolto che si disconnettono o interrompono l'ascolto tramite i metodi di scollegamento (ad esempio, off() per il web o removeAllObservers per iOS).

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

leggi a riposo

GET mediante l'API REST.

{
    "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
}

riposo-scrittura

Richieste PUT e POST tramite l'API REST. Le richieste DELETE riflettono operazioni rest-write a 0 byte.

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

transazione-rest

Per un comportamento simile a quello delle transazioni, utilizza le richieste condizionali. L'operazione rest-transaction acquisisce le richieste utilizzando le intestazioni Etag o if-match.

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

aggiornamento-rest

Gli aggiornamenti tramite l'API REST riflettono le richieste PATCH.

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

on-disconnect-put

Queste operazioni riflettono l'aggiunta di listener onDisconnect per le operazioni di scrittura. Ad esempio, quando usi onDisconnect().setValue().

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

on-disconnect-update

Queste operazioni riflettono l'aggiunta di listener onDisconnect per l'aggiornamento delle operazioni. Ad esempio, quando usi onDisconnect().updateChildren().

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

all'annullamento della connessione

Queste operazioni riflettono la rimozione dei listener onDisconnetti. Ad esempio, quando usi onDisconnect().set().cancel().

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

run-on-disconnect

Queste operazioni riflettono l'attivazione dei listener onDisconnect. Quando un client in tempo reale si disconnette dopo aver aggiunto almeno un listener onDisconnect, il profiler registra una singola operazione run-on-disconnect per riflettere i byte e l'ora aggregati di tutti i listener onDisconnect attivati.

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