Я хочу создать поле приращения для статей.
Я имею в виду эту ссылку: https://firebase.google.com/docs/database/android/save-data#save_data_as_transactions
В примере есть код для поля инкремента:
if (p.stars.containsKey(getUid())) {
// Unstar the post and remove self from stars
p.starCount = p.starCount - 1;
p.stars.remove(getUid());
} else {
// Star the post and add self to stars
p.starCount = p.starCount + 1;
p.stars.put(getUid(), true);
}
Но как я могу быть уверен, что пользователь уже любил/не писал статью?
В этом примере пользователь (хакер) может также очистить всю карту "Звезды", как это, и он все равно сохранит:
p.stars = new HashMap<>();
и это испортит логику для других пользователей, которым это уже понравилось.
Я даже не думаю, что вы можете создавать правила для этого, особенно для действия "уменьшить количество".
Любая помощь, предложения?