Tipos de operação do Firebase Realtime Database

Comando do criador de perfil do Firebase Realtime Database

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

firebase database:profile
Opções de sinalização Descrição
-h, --help Informações de uso de saída.
-o, --output FILENAME Salve a saída no arquivo especificado.
-i, --input FILENAME Gere o relatório com base no arquivo especificado em vez de transmitir logs do servidor.
-d, --duration SECONDS Colete informações de uso do banco de dados durante o número especificado de segundos.
--raw Produza as estatísticas brutas coletadas como JSON delimitado por nova linha.

Tipos de operação

conexão simultânea

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

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

desconexão simultânea

As desconexões simultâneas refletem uma conexão que foi desconectada do banco de dados (por exemplo, quando um cliente se desconecta ou desconecta).

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

gravação em tempo real

Escreva solicitações de conexões em tempo real. Por exemplo, operações set() e push() para clientes web. As solicitações de exclusão também são contadas como operações 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
}

transação em tempo real

Este tipo de operação inclui transações realizadas através de conexões em tempo real. Transações repetidas podem ser o resultado de tentativas e tentativas malsucedidas.

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

atualização em tempo real

Essas operações em tempo real para atualizações refletem a substituição 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
}

ouvinte-ouvir

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

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

transmissão pelo ouvinte

Esta operação cobre os dados enviados do servidor para todo e qualquer cliente que esteja escutando em um determinado local após cada operação de gravação e atualização. A alteração nos dados leva a uma operação de transmissão. No entanto, você poderá ver 0 atualizações se não houver nenhum cliente escutando.

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

ouvinte-não ouvir

Essas operações refletem clientes de escuta que desconectam ou param de escutar por meio dos métodos de desanexação (por exemplo, off() para web ou removeAllObservers para iOS).

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

descansar-ler

Solicitações GET por meio da 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-escrever

Solicitações PUT e POST por meio da API REST. As solicitações DELETE refletem operações rest-write de 0 bytes.

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

transação restante

Para comportamento semelhante a uma transação, use Requests 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
}

atualização de descanso

As atualizações por meio da API REST refletem as solicitações PATCH .

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

ligado-desconectado

Essas operações refletem a adição de ouvintes onDisconnect às operações de gravação. Por exemplo, quando você usa onDisconnect().setValue() .

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

atualização ao desconectar

Essas operações refletem a adição de ouvintes onDisconnect para atualizar operações. Por exemplo, quando você usa onDisconnect().updateChildren() .

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

ao desligar-cancelar

Essas operações refletem a remoção dos ouvintes onDisconnect. Por exemplo, quando você usa onDisconnect().set().cancel() .

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

executar ao desconectar

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

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