# Introduction

### MPush <a href="#mpush" id="mpush"></a>

If your project is configured to send push notifications you must use this set of API to properly register your users' devices tor receive push notifications. Also, you'll need to have basic knowledge of Google Firebase and Firebase Cloud Messaging.

#### Before you start <a href="#before-you-start" id="before-you-start"></a>

You must **create a Firebase project** for your application, this way you'll have the push server key to insert in your `MBurger project`. This will generate a push API KEY.

To create a new Firebase project, please reference [this](https://firebase.google.com/docs/android/setup) documentation.&#x20;

{% hint style="info" %}
Remember that you'll need at least these Firebase dependencies:
{% endhint %}

```bash
com.google.firebase:firebase-core
com.google.firebase:firebase-messaging
```

For the **FCM client setup** refer to [this](https://firebase.google.com/docs/cloud-messaging/android/client) documentation. Long story short you'll need to extend a new`FirebaseMessagingService`which will trigger`onNewToken`to obtain the Firebase token which you'll need to send to the MBurger API and`onMessageReceived,` an event triggered when a push message is received. Be aware that **MBurger uses the "data" message** types in order to permit the developers to completely customize notifications and behavior on receiving notifications (you'll find all about data messages [here](https://firebase.google.com/docs/cloud-messaging/concept-options))

After you have set up your project for Firebase you can start using Nooko SDK to register users receive FCM messages.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mpush.cloud/android-sdk/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
