Yes, the feature you need to achieve this is called Named User. Named User is a way for you to link a devices to a User ID from your system. Every time a user logs into the device you will set the Named User, which is just one line of code in iOS and in Android but they will stay linked to that user unless you link the device to another user or you disassociate it.
When you send the message, you don't need to check the Channels linked to the user, you can just target the Named User ID and we will calculate which devices we need to send to. In the UI this looks likes this:
If you are using the API, your payload would look like this:
Please let me know if this helps or if you have any questions.