Tipos de operaciones de Firebase Realtime Database

Comando del perfilador de base de datos en tiempo real de Firebase

Para generar un informe de la velocidad y el uso de ancho de banda para las operaciones en su instancia de Realtime Database, use el siguiente comando:

firebase database:profile
Opciones de bandera Descripción
-h, --help Información de uso de salida.
-o, --output FILENAME Guarde la salida en el archivo especificado.
-i, --input FILENAME Genere el informe basándose en el archivo especificado en lugar de transmitir registros desde el servidor.
-d, --duration SECONDS Recopile información de uso de la base de datos durante la cantidad de segundos especificada.
--raw Genere las estadísticas sin procesar recopiladas como JSON delimitado por nuevas líneas.

Tipos de operación

conexión concurrente

Esta operación refleja conexiones en tiempo real a la base de datos (por ejemplo, cuando un nuevo cliente se conecta a través de un SDK). Las conexiones RESTful no se reflejan en las operaciones de conexión simultánea.

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

desconexión concurrente

Las desconexiones simultáneas reflejan una conexión que se ha desconectado de la base de datos (por ejemplo, cuando un cliente se desconecta o cierra sesión).

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

escritura en tiempo real

Escribir solicitudes desde conexiones en tiempo real. Por ejemplo, operaciones set() y push() para clientes web. Las solicitudes de eliminación también se cuentan como operaciones realtime-write y reflejan escrituras de 0 bytes.

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

transacción en tiempo real

Este tipo de operación incluye transacciones realizadas a través de conexiones en tiempo real. Las transacciones repetidas pueden ser el resultado de intentos y reintentos fallidos.

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

actualización en tiempo real

Estas operaciones de actualización en tiempo real reflejan sobrescrituras de datos específicos, no las operaciones de escritura más generales en realtime-write .

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

oyente-escucha

Estas operaciones reflejan la solicitud inicial de datos en una ubicación específica por parte de un cliente. Por ejemplo, los métodos on() o once() para clientes web.

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

oyente-transmisión

Esta operación cubre los datos enviados desde el servidor a todos y cada uno de los clientes que están escuchando en una ubicación determinada después de cada operación de escritura y actualización. El cambio de los datos conduce a una operación de difusión. Sin embargo, es posible que vea 0 actualizaciones si no hay ningún cliente escuchando.

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

oyente-deja de escuchar

Estas operaciones reflejan clientes de escucha que cierran sesión o dejan de escuchar a través de los métodos de desconexión (por ejemplo, off() para web o removeAllObservers para iOS).

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

descansar-leer

GET solicitudes a través de la 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
}

descansar-escribir

Solicitudes PUT y POST a través de la API REST. Las solicitudes DELETE reflejan operaciones rest-write de 0 bytes.

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

transacción-resto

Para un comportamiento similar a una transacción, utilice Solicitudes condicionales . La operación rest-transaction captura solicitudes utilizando encabezados Etag o if-match .

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

actualización de descanso

Las actualizaciones a través de la API REST reflejan las solicitudes PATCH .

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

en-desconectar-poner

Estas operaciones reflejan la adición de oyentes onDisconnect para escribir operaciones. Por ejemplo, cuando usas onDisconnect().setValue() .

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

actualización al desconectarse

Estas operaciones reflejan la adición de oyentes onDisconnect a las operaciones de actualización. Por ejemplo, cuando usas onDisconnect().updateChildren() .

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

al desconectar-cancelar

Estas operaciones reflejan la eliminación de los oyentes onDisconnect. Por ejemplo, cuando usas onDisconnect().set().cancel() .

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

funcionamiento al desconectar

Estas operaciones reflejan la activación de los oyentes onDisconnect . Cuando un cliente en tiempo real se desconecta después de agregar al menos un oyente onDisconnect , el generador de perfiles registra una única operación run-on-disconnect para reflejar los bytes agregados y el tiempo de todos los oyentes onDisconnect activados.

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