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

How to save a list of objects with Proto DataStore

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

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

我看到的所有指南都在教如何只保存一个对象。是否可以列出它?

您应该考虑在 Room 中存储内容列表,即使 proto-datastore 也不是存储复杂内容的合适解决方案,

如果你还想的话,我建议你限制存储的数据为10-15条

到代码--->

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

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

  1. 在你的proto-store、
  2. 里面
dataStore.updateData { store ->
       store.toBuilder()
      .clearStudents() // clear previous list
      .setAllStudents(students)// add the new list
      .build()
}


如果您想查看示例应用程序,请阅读 data/domain 层 https://github.com/ch8n/Jetpack-compose-thatsMine