Tipi di operazioni di Firebase Realtime Database

Comando del profiler Firebase Realtime Database

a generare un report sulla velocità e la larghezza di banda utilizzata per le operazioni Realtime Database, usa il comando seguente:

firebase database:profile
Opzioni di segnalazione Descrizione
-h, --help Mostra le 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 log del flusso dal server.
-d, --duration SECONDS Raccogli informazioni sull'utilizzo del database per il numero di secondi specificato.
--raw Mostra le statistiche non elaborate raccolte come JSON delimitato da 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 vengono riportate nelle operazioni di connessione simultanea.

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

disconnessione-contemporanea

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

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

realtime-transaction

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

{
    "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 più generali saranno le operazioni di scrittura in realtime-write.

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

ascolta-ascoltatore

Queste operazioni riflettono la richiesta iniziale di dati in una località 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 riguarda i dati inviati dal server a tutti i client che ascoltano in una determinata posizione dopo ogni operazione di scrittura e aggiornamento. La ai dati porta a un'operazione di trasmissione. Tuttavia, potresti non vedere 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 in ascolto che escono 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
}

riprendi leggi

Richieste GET 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
}

rest-write

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
}

rest-transaction

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

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

rest-update

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 onDisconnect ascoltatori 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
}

on-disconnect-update

Queste operazioni riflettono l'aggiunta di onDisconnect ascoltatori 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 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 onDisconnect listener, il profiler registra una singola operazione run-on-disconnect in modo da riflettere i byte e il tempo aggregati di tutti i listener onDisconnect attivata.

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