У меня есть игра, в которой оба клиента имеют возможность определить состояние «игра окончена», записывая в узел «gameover»:
- идентификатор игры - - Обновления игры - - игра закончена Я прикрепляю ChildEventListener к «gameId», и когда приходит снимок, я определяю ключ снимка и действую соответствующим образом.
Поскольку игра может закончиться по-разному, я хочу, чтобы учитывалась только первая запись в «gameover», чтобы гарантировать, что игра закончится одинаково для обоих игроков. Следовательно, в правилах RTDB я установил !data.exists() для «окончания игры».
Моя проблема: Если моя запись в «gameover» запрещена правилами (другой игрок уже написал что-то в этот узел), то я все равно получаю локальный снимок с записанными мной данными, даже если он никогда не записывался в базу данных. Теперь я знаю об этом ответе @puf, где, если вы напишете что-то с ServerValue.TIMESTAMP, вы получите один локальный и один фактический снимок. Это ожидаемое поведение, но я не пишу здесь никаких временных меток.
Что я хочу знать: такое же поведение, как и при записи меток времени? И есть ли способ игнорировать локальные снимки? Также открыт для альтернативных идей, как это сработает

Заранее благодарим за любую помощь!