Наше приложение позволяет аутентифицированным пользователям отправлять и получать цифровые монеты друг от друга в приложении. У каждого пользователя есть поле coins
, в котором хранится текущий баланс монет пользователя. Чтобы перевести монеты, мы используем транзакции в хранилище на конце отправителя, чтобы вычесть стоимость монет из отправителя, а затем добавляем их к балансу получателя. Следовательно, в то время как отправитель вошел в систему, они должны делать записи в документ получателя. Этот подход небезопасен, поскольку мы проверяем только, вошел ли отправитель в систему. Это позволяет любому аутентифицированному пользователю иметь доступ на запись к документу другого пользователя. Существует ли гораздо лучший / безопасный подход для реализации такого рода транзакций между пользователями, и возможно ли решить проблему только с использованием правил безопасности пожарного депо в этой ситуации?