【问题标题】:unable to read or write in android datastore无法在 android 数据存储中读取或写入
【发布时间】:2023-02-13 20:43:44
【问题描述】:

我对 android datastore 有疑问。 我不知道我不能写或不能读,但无论如何都行不通 这是我的代码:

class DataStoreProvider(private val context: Context) {
    private val Context.dataStore: DataStore<Preferences> by 
      preferencesDataStore("settings")
    private val phoneNumberKey = stringPreferencesKey("phoneNumberPreferencesKey")
    private val passwordKey = stringPreferencesKey("passwordPreferencesKey")

    fun readPhoneNumber(): String? {
        var phoneNumber: String? = null
        context.dataStore.data
            .map { preferences ->
                phoneNumber = preferences[phoneNumberKey]
            }
        return phoneNumber
    }

    suspend fun savePhoneNumber(phoneNumber: String) {
        context.dataStore.edit { setting ->
            setting[phoneNumberKey] = phoneNumber
        }
    }
}

我从 Dispatchers.IO 上的 viewModelScope.launch 函数调用这些函数。

我使用1.0.0版本的数据存储 知道我该怎么办吗?

【问题讨论】:

    标签: android kotlin android-jetpack-datastore


    【解决方案1】:

    像这样重构你的readPhoneNumber

    suspend fun readPhoneNumber(): String? {
        return context.dataStore.data
          .map { preferences -> preferences[phoneNumberKey] ?: null }
          .first()
    }
    

    【讨论】:

      猜你喜欢
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2013-11-05
      • 1970-01-01
      相关资源
      最近更新 更多