Firebase избегает переопределения / обновления одного и того же узла несколькими клиентами (веб) - PullRequest
0 голосов
/ 28 января 2019

Я использую Firebase, чтобы создать систему контроля, где несколько пользователей одного и того же магазина могут переопределить / обновить узел одновременно.

Сценарий / шаги:

Пользователь1: введите код товара в систему(и он может ввести несколько)

Пользователь2: введите код элемента в системе (//)

Пользователь3: высвободить этот код элемента из системы

Пользователь4 ... и т. д.на.

Код:

"-KhBgsi8HwT5BloV0Srt" : {
        "lastUpdated" : 1504285854767,
        "methodName" : "ITEM_ENTERED",
        "payLoad": "{'Id':1, 'ItemName': 'Apples'}"   
      }

В вышеприведенном коде всякий раз, когда любой пользователь вводит, я переопределяю вышеуказанный узел с помощью methodDame и payLoad элемента.И всякий раз, когда пользователь выпускает элемент из системы, я снова обновляю тот же узел, переопределяя его следующим образом:

"-KhBgsi8HwT5BloV0Srt" : {
            "lastUpdated" : 1504285854767,
            "methodName" : "ITEM_RELEASED",
            "payLoad": "{'Id':1, 'ItemName': 'Apples'}"   
          }

Все пользователи подключены к одному и тому же узлу Firebase, который может быть переопределен вышеуказанными пользователями одновременно.Таким образом, если все пользователи выполняют операции одновременно, узел получает последний, сохраненный в узле.Как я могу избежать этого и убедиться, что все пользователи получают одни и те же данные, а не последние данные, произошедшие на узле.

В какой-то момент, когда все происходит быстро пользователями, вышеупомянутый узел смешивается с методами и клиентами ITEM_ENTERED / ITEM_RELEASEDрассинхронизируйся.

Надеюсь, я ясно изложил свою точку зрения.Мне просто нужно правильное направление для исправления этой записи параллелизма на одном узле.

Любая помощь приветствуется.Спасибо

1 Ответ

0 голосов
/ 28 января 2019

Комментарии становятся длинными, но это кажется правильным решением вашей проблемы. Просто нажмите на другой узел, и ваш слушатель вернет последний нажатый узел

Вместо использования child_changed используйте child_added

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...