In Loco for Apps depends on two processes in order to deliver push notifications through the FCM platform: registration and message sending.
The registration step serves to create an endpoint between the In Loco for Apps backend and your user's device, so In Loco for Apps can send push notifications to the device through Firebase. This endpoint is represented by a Registration ID, generated and refreshed by Firebase. This step will guarantee that In Loco for Apps always has the latest Registration ID.
The registration step takes place when the app opens (1). The FCM SDK registers itself with the FCM backend, thus generating a Registration ID (2). This registration ID should be passed to the I Loco for Apps SDK, which updates the In Loco for Apps Backend.
The step above is repeated every time a Registration ID is refreshed by Firebase.
The message sending step includes the visit detection, visit processing and sending the push notification. The In Loco for Apps SDK detects that a user is visiting a point of interest and communicates the In Loco for Apps API (1). The In Loco for Apps API then enhances the location information (2) and checks if the push notification should be sent. Then the In Loco for Apps API, using the Registration ID, publishes notifications via FCM (3) and the message is delivered to the user.