AFAIK the token is related to the device.
So, when the app starts you read the token, verify whether it changed from last time and, in case, send it to the "server".
The server records the token (or even the tokens if the user has more devices registered for your service) and it's ready to send out individual messages.
On your DB you could have two tables: one for the customers and one for any number of devices registered by each customer.
This way, you could decide if you want to send a mesage to a persone (sending to all his/her devices) or to a specific device.
Anotehr point. Don't rely 100% on the broker sending messages. In general, FCM successfully sends messages even to devices turned off (for some time, I guess).
But I find it wiser to query the "server" about new messages on app start (this means you locally to the device records the ID of the last one received).
Obviously all that depends on the kind of app you're developing.