Icy
Icy

Reputation: 17

Is there a way to retrieve realtime firebase map as a linkedhashmap or at least maintain the order it is saved in

I have a map of string boolean pairs saved on firebase realtime database and was wondering if there is a way to retrieve it in kotlin as a linkedhashmap such that the original order remains in place.

I have tried typecasting to a linkedhashmap and got an error that hashmap cannot be typecasted to linked hashmap, I then tried calling the linkedhashmap constructor method with the parameter being the data from the database as a hashmap but that does not maintain the order

Upvotes: 0

Views: 89

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 599866

Properties in JSON are by definition not in any specific order.

While you can retrieve data from Firebase in a specific order, by calling one of its orderBy... operations, that order will be lost when you call .value in the DataSnapshot as DataSnapshot.value returns a Map, which is unordered again.

If you want to retrieve the nodes in a specific order:

  1. Call orderBy... to get the nodes in a specific order.
  2. Loop over the children of the snapshot you get back to process them in order, and only call value on each specific child node.

Upvotes: 0

Related Questions