如何使用Proto DataStore保存对象列表

问题描述

如果我有以下课程,如何使用Proto DataStore保存它的列表?

data class Tag(
    val id: int,val name: String
)

我看到的所有指南都在教如何仅保存单个对象。可以列出吗?

解决方法

您应该考虑将内容列表存储在Room中,即使原始数据存储也不是存储复杂内容的适当解决方案,

如果您仍然愿意,我建议您将存储的数据限制为10-15个项目

到代码--->

  1. 创建您的原始文件,重复该操作用于为Java创建list类型
message Student {
  string id = 1;
  string name = 2;
}

message Class {
  string teacher = 1;
  repeated Student students  = 2; // repeated => list
}

  1. 在原型商店内,
dataStore.updateData { store ->
       store.toBuilder()
      .clearStudents() // clear previous list
      .setAllStudents(students)// add the new list
      .build()
}


如果您想示例签出我的示例应用程序,请读取数据/域层 https://github.com/ch8n/Jetpack-compose-thatsMine