Считает ли обновление 2 полей на разных путях одновременно запись 2 в облачном хранилище? - PullRequest
0 голосов
/ 08 апреля 2020

Снимок экрана 1:

enter image description here

При student > 100 > name я хочу обновить 'name' до 'Bar'.


Снимок экрана 2:

enter image description here

При student > 100 > exam > english > marks, я хочу обновить 'marks' до 50.


Теперь я могу обновить их, используя

var firestore = Firestore.instance;
firestore.document('student/100').updateData({'name': 'Bar'});
firestore.document('student/100/exams/english').updateData({'marks': 50});

Проблема:

Этот код вызывается два раза :

var ref = firestore.document('student/100');
ref.snapshots().listen((event) {
  print('server updated'); // called 2 times
});

Будет ли это считаться как две записи? Если да, как я могу изменить его на одну запись, потому что оба поля принадлежат одному пути 'student/100'?

1 Ответ

2 голосов
/ 08 апреля 2020

Будет ли это считаться как две записи?

Да, это будет считаться как две записи.

Когда вы используете Cloud Firestore, с вас взимается для следующего:

  1. Количество выполненных вами операций чтения, записи и удаления.
  2. Объем хранилища, используемый вашей базой данных, включая накладные расходы для метаданных и индексов. .
  3. Количество используемой вами полосы пропускания сети.

Если да, как я могу изменить его на одну запись, поскольку оба поля принадлежат одному и тому же пути 'student / 100 '?

В Firestore запросы мелкие, что означает, что при записи в документ из коллекции верхнего уровня вы не можете получить доступ к документам внутри вложенной коллекции, если не укажете путь к этому документу. Поэтому невозможно выполнить одну запись как для документа верхнего уровня, так и для документа внутри вложенной коллекции.

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