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