Inloco depends on two processes in order to deliver push notifications through the Fireabase Cloud Messaging (We will refer to it just by Firebase) platform: registration and message sending.
The registration step serves to create an endpoint between the Inloco backend and your user's device, so Inloco 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 Inloco 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 Inloco SDK, which updates the Inloco 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 Inloco SDK detects that a user is visiting a point of interest and communicates the Inloco API (1). The Inloco API then enhances the location information (2) and checks if the push notification should be sent. Then the Inloco API, using the Registration ID, publishes notifications via FCM (3) and the message is delivered to the user.