When I started to implement my first chat application I really didn't have any clue how the database structure should look like. Of course, I had made several changes through the years, but the basic Message and Recent item structure remained the same. Although the original structure caused several issues which became more and more annoying.
With version 3.1 these database related issues are solved now. We don't store Recent items at Firebase anymore. The conversation related information is generated and stored only locally. Also, every user has his own Message path now. So everybody can control his own messages without touching the other users' messages.
Several UI changes have also been performed along with few bug fixes. Please check the latest implementation and let me know what you think. :)