In order to send and receive messages using FCM, the two elements needed are a trusted environment or server to on which build, direct and send messages and an Android, iOS or Web client app to receive messages . With FCM, developers can send two types of messages to users: notifications messages and data messages.