迁移到Proto数据存储



我正试图从偏好数据存储迁移到原始数据存储,但数据未在原始数据存储中更新。以下是代码片段,我硬编码真值,甚至没有检查在首选项数据存储,但它不工作。我试着在runBlocking lambda中设置值,但无济于事。此外,为了确保我直接从实际代码中设置了这个值,它可以正常工作。

fun provideProtoDataStore(@ApplicationContext appContext: Context, userPreferenceStore: DataStore<Preferences>): DataStore<UserPreferences> {
return DataStoreFactory.create(
serializer = UserPreferencesSerializer,
produceFile = { appContext.dataStoreFile(DATA_STORE_FILE_NAME) },
corruptionHandler = null,
migrations = listOf(object : DataMigration<UserPreferences> {
override suspend fun cleanUp() {
}
override suspend fun migrate(currentData: UserPreferences): UserPreferences {
currentData.toBuilder().setIsUserAware(true).build()
return currentData
}
override suspend fun shouldMigrate(currentData: UserPreferences): Boolean {
return true
}
}),
scope = CoroutineScope(Dispatchers.IO + SupervisorJob())
)
}

我错过了什么吗?我是新手,很抱歉使用了不正确的术语。蒂娅!

返回构建版本

override suspend fun migrate(currentData: UserPreferences): UserPreferences {
return currentData.toBuilder().setIsUserAware(true).build()
}

最新更新