Я реализовал синхронизацию в реальном времени после демонстрационного приложения задач Realm.
Там используется фиктивный контейнер для хранения List
с моделями.
Демонстрационное приложение, похоже, не поддерживает автономное использование.
Мне было интересно, что происходит, когда с учетом этой настройки я запускаю приложение как на онлайн-устройстве, так и на автономном, а затем подключаюсь к сети с автономного устройства.
Первоначально я ожидал, что закончу с двумя контейнерами (что было бы недопустимым состоянием), но когда я тестировал, к удивлению, в конце был только 1 контейнер.
Но иногда я получаю 2 контейнера и не могу определить причину этого.
Тогда возникает вопрос, как именно это работает? Я предполагаю, что причина того, что контейнер обычно не дублируется при первой синхронизации автономного устройства, заключается в том, что он обрабатывается как один и тот же объект, может быть, потому, что у него нет первичного ключа или что-то в этом роде? Но тогда почему он иногда дублируется? И что было бы лучшей практикой здесь? Возможно, мне придется использовать первичный ключ или проверить после подключения, есть ли дублирование, и если да, то выполнить ручное слияние контейнеров?