How to save a list of objects with Proto DataStore

Viewed 3697

If I have the following class, how can I save a list of it with Proto DataStore?

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

All guides that I saw were teaching how to save only a single object. Is it possible to have a list of it?

1 Answers

You should consider storing list of content in Room, Even proto-datastore isnt a proper solution to store complex stuff,

If you still want then, I will suggest you to restrict the data stored to 10-15 items

to the code --->

  1. Create your proto file, repeated is used to create list type for Java
message Student {
  string id = 1;
  string name = 2;
}

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

  1. Inside your proto-store,
dataStore.updateData { store ->
       store.toBuilder()
      .clearStudents() // clear previous list
      .setAllStudents(students)// add the new list
      .build()
}


if you want example checkout my sample app, read the data/domain layer https://github.com/ch8n/Jetpack-compose-thatsMine

Related