Tipos de operaciones de Firebase Realtime Database

Comando del generador de perfiles de Firebase Realtime Database

Para generar un informe de la velocidad y el uso del ancho de banda de las operaciones de tu instancia de Realtime Database, usa el siguiente comando:

firebase database:profile
Opciones de marcas Descripción
-h, --help Proporciona información sobre el uso.
-o, --output FILENAME Guarda el resultado en el archivo especificado.
-i, --input FILENAME Genera el informe a partir del archivo especificado en lugar de los registros de transmisión provenientes del servidor.
-d, --duration SECONDS Recopila información sobre el uso de la base de datos para la cantidad de segundos especificada.
--raw Proporciona las estadísticas sin procesar que se recopilaron en un archivo JSON delimitado por saltos de línea.

Tipos de operación

concurrent-connect

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

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

concurrent-disconnect

Las operaciones concurrent-disconnect reflejan una conexión que se desconectó desde la base de datos (por ejemplo, cuando un cliente se desconecta o se cierra).

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

realtime-write

Solicitudes de escritura desde conexiones en tiempo real. Por ejemplo, las 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
}

realtime-transaction

Este tipo de operación incluye transacciones que se ejecutan a través de conexiones en tiempo real. Las transacciones repetidas pueden ser resultado de intentos fallidos o reiterados.

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

realtime-update

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

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

listener-listen

Estas operaciones reflejan la solicitud inicial de datos en una ubicación específica desde 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
}

listener-broadcast

Esta operación abarca 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 en los datos genera una operación de transmisión. Sin embargo, es posible que veas 0 actualizaciones si no hay clientes 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
}

listener-unlisten

Estas operaciones reflejan los clientes que escuchan y que se cierran 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
}

rest-read

Solicitudes GET a través de la API de 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

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

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

rest-transaction

Para comportamientos similares a transacciones, usa solicitudes condicionales. La operación rest-transaction usa encabezados Etag o if-match para captar solicitudes.

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

rest-update

Las actualizaciones realizadas mediante la API de REST muestran las solicitudes PATCH.

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

on-disconnect-put

Estas operaciones reflejan la adición de objetos de escucha onDisconnect a las operaciones de escritura. Por ejemplo, cuando usas onDisconnect().setValue().

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

on-disconnect-update

Estas operaciones reflejan la adición de objetos de escucha 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
}

on-disconnect-cancel

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

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

run-on-disconnect

Estas operaciones reflejan la activación de los objetos de escucha onDisconnect. Cuando un cliente de RealTime se desconecta después de agregar al menos un objeto de escucha onDisconnect, el generador de perfiles registra una sola operación run-on-disconnect para reflejar los bytes agregados y el tiempo de todos los objetos de escucha onDisconnect que se activaron.

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