База данных Firebase в реальном времени: загружает ли пользователь всю базу данных каждый раз? - PullRequest
1 голос
/ 30 мая 2019

Я хочу, чтобы пользователь отправил некоторые данные в базу данных. Но загруженные данные немного высоки. Вот мои правила:

{
  "rules": {
    ".read": false,
    ".write": true
  }
}

За один день скачанные данные стали 7,2 мб. Размер моей базы данных составляет около 320 КБ. Это мой код, где я его использую.

String id = mDatabase.child(username).push().getKey();
Record r = new Record(calendar.getTimeInMillis(),sensorValue);
mDatabase.child(username).child(id).setValue(r);

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Нет, Firebase не загружает все данные при каждом запуске приложения, если оно вам не нужно (зависит от запрашиваемых данных).

Так что правильный ответ - это то, что это зависит от кода вашего приложения. Например, если у вас есть код вроде

db.ref('users/user_id').once((snap) => { ... })

означает, что загружаются только определенные данные, помещенные в поле user_id.

Но если, например, вы напишите такой код:

db.ref('users').once((snap) => { ... })

весь объект users будет загружен.

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

0 голосов
/ 30 мая 2019

Распространенным источником неожиданного использования полосы пропускания в базе данных Firebase Realtime (и в Cloud Firestore, другой базе данных Firebase) является тот факт, что любые данные, отображаемые в консоли Firebase, также учитываются в вашей квоте.

Так что в вашем случае, если вы сохранили базу данных открытой в консоли Firebase и обновляли ее 10 раз в течение дня, или если вы открывали консоль базы данных Firebase 10 раз в день, вы уже хорошо на вашем пути объяснения использования полосы пропускания, которое у вас есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...