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 For Apps backend and your user's device, so 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 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 For Apps SDK, which updates the 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 For Apps SDK detects that a user is visiting a point of interest and communicates the For Apps API (1). The For Apps API then enhances the location information (2) and checks if the push notification should be sent. Then the For Apps API, using the Registration ID, publishes notifications via FCM (3) and the message is delivered to the user.