Tipi di operazioni del database Firebase Realtime

Comando del profiler del database Firebase Realtime

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

firebase database:profile
Opzioni di segnalazione Descrizione
-h, --help Informazioni sull'utilizzo dell'output.
-o, --output FILENAME Salva l'output nel file specificato.
-i, --input FILENAME Genera il report in base al file specificato anziché ai registri di flusso dal server.
-d, --duration SECONDS Raccogli le informazioni sull'utilizzo del database per il numero di secondi specificato.
--raw Visualizza le statistiche grezze 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
}

disconnessione simultanea

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

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

scrittura in tempo reale

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

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

transazione in tempo reale

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

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

ascoltatore-ascolta

Queste operazioni riflettono la richiesta iniziale di dati in una posizione specifica da parte di un client. 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
}

trasmissione-ascoltatore

Questa operazione copre 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 comporta un'operazione di broadcast. Tuttavia, potresti visualizzare 0 aggiornamenti se non sono presenti 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
}

ascoltatore-nonascoltare

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

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

resto-leggi

GET richieste tramite 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
}

resto-scrivi

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

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

transazione di resto

Per un comportamento simile a una transazione, 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
}

resto-aggiornamento

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 ascoltatori onDisconnect alle operazioni di scrittura. Ad esempio, quando usi onDisconnect().setValue() .

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

aggiornamento alla disconnessione

Queste operazioni riflettono l'aggiunta di ascoltatori onDisconnect alle operazioni di aggiornamento. Ad esempio, quando usi onDisconnect().updateChildren() .

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

alla disconnessione-annulla

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

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

esecuzione alla disconnessione

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

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