Push Service Architecture Overview

Hi everyone! Im not sure if I fully understand how the Ionic push architecture works, so let me first give a quick overview and then ask my questions.
The basic workflow to send a message is…

  1. The users identifies itself in the Ionic Server using a unique ID.
  2. The device registers in the server and receives a device Token.
  3. The device send the user and token information to my server
  4. My server wants to send a message to a user, so it looks for the token sent in (3) and sends the message to the Ionic Server with the device token as a parameter
  5. Ionic server sends the Push notification to the device

Is this right?? If it is…

a) If I have to store in my own server the device tokens (3) why would I use Ionic push service? Wouldn’t be the same connecting GCM/APNS myself and storing the token as I am doing now?
b) Considering the fact that the user ID is unique and can be user generated, wouldn’t be possible for the Ionic Server to remember my device token? (maybe is a feature for the final release). This way I could skip step (3) and connect to the Ionic server using only the User ID.

Thank you very much!