Types d'opérations Firebase Realtime Database

Commande du profileur Firebase Realtime Database

Pour générer un rapport sur l'utilisation de la vitesse et de la bande passante pour les opérations dans votre Realtime Database, exécutez la commande suivante:

firebase database:profile
Options d'indicateur Description
-h, --help Générez des informations d'utilisation.
-o, --output FILENAME Enregistrez la sortie dans le fichier spécifié.
-i, --input FILENAME Générez le rapport à partir du fichier spécifié au lieu de diffuser des journaux à partir du serveur.
-d, --duration SECONDS Collecte des informations sur l'utilisation de la base de données pendant le nombre de secondes spécifié.
--raw Générez les statistiques brutes collectées au format JSON délimité par un retour à la ligne.

Types d'opération

connexion simultanée

Cette opération reflète les connexions en temps réel à la base de données (par exemple, lorsqu'un nouveau client se connecte via un SDK). Les connexions RESTful ne sont pas reflétées dans les opérations de connexion simultanée.

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

concurrent-disconnect

Les déconnexions simultanées reflètent une connexion qui s'est déconnectée de la base de données (par exemple, lorsqu'un client se déconnecte ou se déconnecte).

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

realtime-write

Écrire des requêtes à partir de connexions en temps réel Par exemple, les opérations set() et push() pour les clients Web. Les demandes de suppression sont aussi comptabilisées comme realtime-write et reflètent des écritures de 0 octet.

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

transaction en temps réel

Ce type d'opération inclut les transactions effectuées via des connexions en temps réel. Les transactions répétées peuvent être le résultat d'échecs et de nouvelles tentatives.

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

mise à jour en temps réel

Ces opérations en temps réel pour les mises à jour reflètent les écrasements de données spécifiques, et non les opérations d'écriture plus générales dans realtime-write.

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

écouter-écouter

Ces opérations reflètent la demande initiale de données à un emplacement spécifique par un client. Par exemple, les méthodes on() ou once() pour les clients Web.

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

listener-broadcast

Cette opération concerne les données envoyées du serveur à tous les clients qui écoutent à un emplacement donné après chaque opération d'écriture et de mise à jour. La la modification des données entraîne une opération de diffusion. Toutefois, il est possible que vous n'obteniez aucune mise à jour si aucun client n'écoute.

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

Ces opérations reflètent les clients d'écoute qui se déconnectent ou arrêtent d'écouter via les méthodes de détachement (par exemple, off() pour le Web ou removeAllObservers pour iOS).

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

rest-read

Requêtes GET via 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

PUT et Requêtes POST via l'API REST API. Les requêtes DELETE reflètent les opérations rest-write de 0 octets.

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

rest-transaction

Pour un comportement de type transaction, utilisez Requêtes conditionnelles. L'opération rest-transaction capture les requêtes à l'aide d'en-têtes Etag ou if-match.

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

rest-update

Les mises à jour effectuées via l'API REST reflètent les requêtes PATCH.

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

lors de la déconnexion

Ces opérations reflètent l'ajout d'écouteurs onDisconnect aux opérations d'écriture. Par exemple, lorsque vous utilisez onDisconnect().setValue().

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

on-disconnect-update

Ces opérations reflètent l'ajout d'écouteurs onDisconnect à mettre à jour opérations. Par exemple, lorsque vous utilisez onDisconnect().updateChildren().

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

lors de la déconnexion de l'appareil

Ces opérations reflètent la suppression des écouteurs onDéconnecter. Par exemple, lorsque vous utilisez onDisconnect().set().cancel().

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

Exécuter lors de la déconnexion

Ces opérations reflètent le déclenchement des écouteurs onDisconnect. Lorsqu'un client en temps réel se déconnecte après avoir ajouté au moins un écouteur onDisconnect, le profileur enregistre une seule opération run-on-disconnect pour refléter les octets et le temps agrégés de tous les écouteurs onDisconnect déclenchés.

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