Firebase Android ChildEventListener срабатывает, если это запрещено правилами (RTDB)Android

Форум для тех, кто программирует под Android
Ответить
Гость
 Firebase Android ChildEventListener срабатывает, если это запрещено правилами (RTDB)

Сообщение Гость »


У меня есть игра, в которой оба клиента имеют возможность определить состояние «игра окончена», записывая в узел «gameover»:

- идентификатор игры - - Обновления игры - - игра закончена Я прикрепляю ChildEventListener к «gameId», и когда приходит снимок, я определяю ключ снимка и действую соответствующим образом.

Поскольку игра может закончиться по-разному, я хочу, чтобы учитывалась только первая запись в «gameover», чтобы гарантировать, что игра закончится одинаково для обоих игроков. Следовательно, в правилах RTDB я установил !data.exists() для «окончания игры».

Моя проблема: Если моя запись в «gameover» запрещена правилами (другой игрок уже написал что-то в этот узел), то я все равно получаю локальный снимок с записанными мной данными, даже если он никогда не записывался в базу данных. Теперь я знаю об этом ответе @puf, где, если вы напишете что-то с ServerValue.TIMESTAMP, вы получите один локальный и один фактический снимок. Это ожидаемое поведение, но я не пишу здесь никаких временных меток.

Что я хочу знать: такое же поведение, как и при записи меток времени? И есть ли способ игнорировать локальные снимки? Также открыт для альтернативных идей, как это сработает :)

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»