Как использовать PreferenceDataStore в асинхронном режиме? - PullRequest
0 голосов
/ 23 марта 2019

Я бы хотел хранить пользовательские настройки в базе данных Firebase в реальном времени вместо обычных sharedPreferences.

В качестве примера, мой пользователь должен указать itemId для доступа к этой части базы данных:

items
  itemId
    members
      uid: true

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

Я предполагаю использовать стандартные экраны предпочтений и связать пользовательский PreferenceDataStore хотя бы для обработки itemId.

При чтении документации мне нужно переопределить методы getString / putString:

public class DataStore extends PreferenceDataStore {
    @Override
    public void putString(String key, @Nullable String value) {
        // Save the value somewhere
    }
    @Override
    @Nullable
    public String getString(String key, @Nullable String defValue) {
        // Retrieve the value
    }
}

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

Так что мне интересно, является ли использование PreferenceDataStore хорошим подходом ... Моя первоначальная идея состояла в том, чтобы избежать разворачивания экранов настроек, которые уже существуют в библиотеке настроек Androidx.

Спасибо за помощь!

...