При работе с данными в многопользовательской среде доступные данные могут быть повреждены одновременными изменениями, такими как добавочные счетчики. В этом случае, чтобы иметь согласованные данные, вы должны использовать операцию транзакции. В Cloud Firestore транзакции полезны, когда вы хотите обновить значение поля на основе его текущего значения. Вы можете увеличить счетчик, создав транзакцию, которая считывает текущее значение счетчика, увеличивает его и записывает новое значение в Cloud Firestore.
Если вы прочитали значение свойства в документе и не обновили его обратно в операции транзакции, это означает, что она больше не является операцией транзакции. Если вы читаете это значение и вместо его обновления вы просто устанавливаете его в другом месте, это означает, что вы выполняете операцию чтения и записи, а не обновление, где предполагается использовать операцию транзакции. Поэтому не имеет значения, записываете ли вы новое значение в базу данных Firebase в реальном времени или даже в другое место в Cloud Firestore, эту операцию нельзя назвать транзакцией.
Также помните, что у каждого продукта есть собственный механизм транзакций. Вот транзакции базы данных Firebase в реальном времени , а вот Облачные транзакции Firestore .
Но мой вопрос, можно ли делать записи в базу данных в реальном времени вместо хранилища?
Да, может, но больше не является операцией транзакции.
Будет ли заменять обновление (запись) пожарного хранилища на счетчик населения городских документов на установку / запись пожарной базы (/ populations / counter)?
Да, это будет работать, но будет считаться только операцией чтения / записи.
Если вы просто хотите прочитать число и установить его в другом месте, нет необходимости в перемещении.