如何在异步模式下使用 PreferenceDataStore?

Fab*_*ice 7 android asynchronous android-preferences firebase-realtime-database

我想将用户首选项存储在 Firebase 实时数据库中,而不是典型的 sharedPreferences。

例如,我的用户应该指定 itemId 以访问数据库的这一部分:

items
  itemId
    members
      uid: true
Run Code Online (Sandbox Code Playgroud)

所以当用户填写itemId时,我需要检查数据库中是否存在这个itemId,并显示错误要求用户填写另一个itemId。

我设想使用标准 Preference 屏幕并关联一个自定义 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
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,我需要异步管理它,以便查询我的数据库并获得一些结果。

所以我想知道使用 PreferenceDataStore 是否是一个好方法......我最初的想法是避免开发已经存在于 Androidx Preference 库中的设置屏幕。

谢谢你的帮助!