Типы операций с базой данных Firebase Realtime

Команда профилировщика Firebase Realtime Database

Чтобы создать отчет о скорости и использовании пропускной способности для операций в вашем экземпляре Realtime Database , используйте следующую команду:

firebase database:profile
Параметры флага Описание
-h, --help Вывод информации об использовании.
-o, --output FILENAME Сохраните вывод в указанный файл.
-i, --input FILENAME Сгенерируйте отчет на основе указанного файла, а не потоковых журналов с сервера.
-d, --duration SECONDS Собирать информацию об использовании базы данных в течение указанного количества секунд.
--raw Выведите необработанную статистику, собранную в виде JSON с разделителями-новой строкой.

Типы операций

одновременное подключение

Эта операция отражает подключения к базе данных в реальном времени (например, когда новый клиент подключается через SDK). Соединения RESTful не отражаются в операциях одновременного подключения.

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

одновременное отключение

Параллельное отключение отражает соединение, которое отключилось от базы данных (например, когда клиент отключается или выходит из системы).

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

запись в реальном времени

Запись запросов от соединений реального времени. Например, операции set() и push() для веб-клиентов. Запросы на удаление также считаются операциями realtime-write и отражают запись нулевых байтов.

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

транзакция в реальном времени

Этот тип операций включает транзакции, проводимые через соединения в реальном времени. Повторные транзакции могут быть результатом неудачных попыток и повторных попыток.

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

обновление в реальном времени

Эти операции обновления в реальном времени отражают перезапись конкретных данных, а не более общие операции записи в realtime-write .

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

слушатель-слушай

Эти операции отражают первоначальный запрос данных от клиента в определенном месте. Например, методы on() или once() для веб-клиентов.

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

слушатель-трансляция

Эта операция охватывает данные, отправляемые с сервера всем клиентам, которые прослушивают в данном месте после каждой операции записи и обновления. Изменение данных приводит к операции широковещания. Однако вы можете увидеть 0 обновлений, если ни один клиент не прослушивает.

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

слушатель-не слушать

Эти операции отражают прослушивающие клиенты, которые отключаются или прекращают прослушивание с помощью методов отсоединения (например, off() для Интернета или removeAllObservers для iOS).

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

отдохнуть-прочитать

GET запросы через REST API.

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

отдыхай-пиши

Запросы PUT и POST через REST API. Запросы DELETE отражают операции rest-write нулевых байтов.

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

остальная транзакция

Для поведения, подобного транзакции, используйте условные запросы . Операция rest-transaction фиксирует запросы с использованием заголовков Etag или if-match .

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

отдых-обновление

Обновления через REST API отражают запросы PATCH .

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

на-отключить-поставить

Эти операции отражают добавление прослушивателей onDisconnect для операций записи. Например, когда вы используете onDisconnect().setValue() .

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

обновление при отключении

Эти операции отражают добавление прослушивателей onDisconnect для операций обновления. Например, когда вы используете onDisconnect().updateChildren() .

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

при отключении-отмене

Эти операции отражают удаление прослушивателей onDisconnect. Например, когда вы используете onDisconnect().set().cancel() .

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

работа при отключении

Эти операции отражают запуск прослушивателей onDisconnect . Когда клиент реального времени отключается после добавления хотя бы одного прослушивателя onDisconnect , профилировщик записывает одну операцию run-on-disconnect чтобы отразить совокупные байты и время всех запущенных прослушивателей onDisconnect .

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