Tipos de operação do Firebase Realtime Database

Comando do criador de perfil Firebase Realtime Database

Para gerar um relatório sobre a velocidade e o uso de largura de banda das operações na sua instância do Realtime Database, use o seguinte comando:

firebase database:profile
Opções de sinalização Descrição
-h, --help Gerar informações de uso
-o, --output FILENAME Salvar o resultado no arquivo especificado
-i, --input FILENAME Gerar o relatório com base no arquivo especificado em vez de registros de streams do servidor
-d, --duration SECONDS Coletar informações de uso do banco de dados pelo número especificado de segundos
--raw Gerar as estatísticas brutas coletadas como um arquivo JSON delimitado por novas linhas

Tipos de operação

concurrent-connect

Esta operação reflete conexões em tempo real com o banco de dados (por exemplo, quando um cliente novo se conecta usando um SDK). As conexões RESTful não são refletidas nas operações concurrent-connect.

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

concurrent-disconnect

Operações concurrent-disconnect refletem uma conexão desconectada do banco de dados (por exemplo, quando um cliente se desconecta ou cancela a assinatura).

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

realtime-write

Solicitações de gravação de conexões em tempo real. Por exemplo, operações set() e push() para clientes da Web. As solicitações de exclusão também são contadas como operações de realtime-write e refletem gravações de 0 bytes.

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

realtime-transaction

Este tipo de operação inclui transações feitas durante conexões em tempo real. As transações de repetição podem ser o resultado de falhas em tentativas e novas tentativas.

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

realtime-update

Estas operações em tempo real para atualizações refletem substituições de dados específicos, e não as operações de gravação mais gerais em realtime-write.

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

listener-listen

Estas operações refletem a solicitação inicial de dados em um local específico de um cliente. Por exemplo, os métodos on() ou once() para clientes da Web.

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

listener-broadcast

Esta operação abrange os dados enviados do servidor para todos os clientes que estejam detectando em um determinado local após cada operação de gravação e atualização. A mudança nos dados leva a uma operação de transmissão. No entanto, você pode ver 0 atualizações se não houver nenhum cliente detectando.

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

Estas operações refletem a atenção voltada a clientes que cancelam ou a interrupção da atenção usando métodos de separação (por exemplo, off() para a Web ou removeAllObservers para iOS).

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

rest-read

Solicitações GET realizadas pela 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

Solicitações PUT e POST realizadas pela API REST. As solicitações DELETE refletem as operações rest-write de 0 bytes.

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

rest-transaction

Para comportamento semelhante a transações, use as solicitações condicionais. A operação rest-transaction captura solicitações usando cabeçalhos Etag ou if-match.

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

rest-update

As atualizações feitas com a API REST refletem as solicitações PATCH.

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

on-disconnect-put

Essas operações refletem a adição de listeners onDisconnect para a gravação das operações. Por exemplo, ao usar onDisconnect().setValue().

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

on-disconnect-update

Essas operações refletem a adição de listeners onDisconnect para atualização delas. Por exemplo, ao usar onDisconnect().updateChildren().

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

on-disconnect-cancel

Essas operações refletem a remoção de listeners onDisconnect. Por exemplo, ao usar onDisconnect().set().cancel().

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

run-on-disconnect

Essas operações refletem o acionamento de listeners onDisconnect. Quando um cliente em tempo real se desconecta após adicionar pelo menos um listener onDisconnect, o criador de perfil registra uma única operação run-on-disconnect para refletir o tempo e os bytes totais de todos os listeners onDisconnect acionados.

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