Синхронизация данных файла Xamarin между устройствами одной платформы

#xamarin #xamarin.forms

#xamarin #xamarin.forms

Вопрос:

Я работаю над приложением Xamarin. Пока это работает довольно хорошо, и я могу протестировать его на Windows и Android. Поскольку у меня нет mac, я пока не могу протестировать его на этой платформе. Приложение хранит свои данные в одном файле, который загружается и сохраняется непосредственно в файловой системе устройства.
Одним из последних шагов по завершению работы приложения является то, что теперь мне нужно синхронизировать файл данных между устройствами, чтобы приложение можно было установить на несколько устройств и на всеустройства данные доступны.

Мой вопрос в том, есть ли простой механизм, который можно использовать для синхронизации файла данных в экземплярах приложения на нескольких устройствах на одной платформе. Мне кажется очевидным, что когда я хочу поддерживать синхронизацию на разных платформах (iOS на android, UWP на iOS и так далее), что я должен использовать какую-либо внешнюю службу хранения данных, такую как one drive, google Drive, iCloud, или предоставить собственную службу хранения, такую как веб-сервис в Azure или S3 (пожалуйста, поправьте меня, если мое предположение неверно).

Однако для начала, существует ли в Xamarin механизм, который использует собственные механизмы синхронизации платформы, которые доступны унифицированным способом через среду Xamarin? В настоящее время я использую для своего локального файла значение Environment.SpecialFolder.LocalApplicationData enum. Существуют ли местоположения, которые автоматически синхронизируются между устройствами (одной платформы)? Или я должен реализовать логику хранения для каждой платформы?
Для iOS я нашел UIDocument хранилище. Если мне придется пойти по этому пути, какой будет подходящий сервис для различных платформ, если таковые имеются?

Комментарии:

1. AFAIK, нет. Если есть способ, его нет в Xamarin. Формы — нет «унифицированного» ответа. Вам придется поискать решение в Google на каждой платформе. Затем напишите DependencyService для каждой платформы, чтобы использовать этот специфичный для платформы код. ИЛИ исследуйте один из облачных сервисов (например, Google FireBase или облачные функции); и решите его кроссплатформенно. Например. Напишите «облачные функции», которые делают то, что вы хотите, и платите за облачное хранилище.