Sorry if I seem to be have little patience, It is just frustrating some limitations. More than solve my issues I would like to contribute to FCM community.
A read the FCM docs before asking here and I saw the device groups option, but it seems a award solution that still makes the developer manage registration ids and it has the same problems Firebase would have with topic subscriptions AND the downside that my server would need to know about registration ids.
My app is not going to hit millions of users because it is a niche app and if some very lucky day it happens I will have a team of devs working to make push segmentation in a different way. Sadly, today, I am the app/server/business guy and I have only hundreds of users and maybe thousands in the next year.
I bet that there are a lot of other developers out there in the same situation and they don`t need all the power that the current model may provide, but just be able to send pushes to all devices of a user and send the same push to a group of users without the need to manage the registration ids in their own system. A userId is something all systems with authentication will have, the developer already has this identifier in their side, it (normally ) does not change, it does not gets invalidated. Firebase SDK could be the place where we associate registrations_ids and userids.
I do know that topics are not originally meant to identify a user, but it works and the client/server coding is simplified.
If FCM had the ability to set/unset the userId (not necessarily a Firebase User Id) and send push to that user it would work just like what I am doing today.
One feature that I would like to have in FCM is that I could send in one HTTP request the same push to multiple topics.
It would mean to me the ability to reach multiple users that are linked to a short period of time with a single push instead of sending multiple requests consuming network/time and process power. I could send it to multiple registration_ids, but it does change and gets invalidated.
Well, that is just my view of the problem. I know nothing is so simple as it seems in the surface, not in the developer side and not in the FCM side.
Thanks for the attention.