I have the following structure. Each user has his own data.
---+ root_child
   |
   +---+ Gy7FXRbRjDfAKWu7a95NgiGIZUk1  (Firebase User Id)
       |
       |
       +---+ KlNlb71qtQUXIGA4cNa (random key, generated by Firebase)
       |   |
       |   +--- timestamp = 1234567890
       |   |
       |   +--- (other data field ...)
       |
       |
       +---+ KlNlcmfMTDjxQ0BwW1K
       |   |
       |   +--- timestamp = 9876543211
       |   |
       |   +--- (other data field ...)
       |
       |
       +---+ (...)
Adding records occurs in this way:
databaseReference = FirebaseDatabase.getInstance().getReference("root_child");
databaseReference.child(firebaseUser.getUid())
    .push()
    .setValue(val);
push() ... Locations generated on a single client will be sorted in the order that they are created...
Now, how can I leave only 100 newest entries (for the specified user id) and delete all the rest?
Pseudocode :
databaseReference = FirebaseDatabase.getInstance()
    .getReference("root_child")
    .child(firebaseUser.getUid())
    .deleteLastNnRecords();