Code Monkey home page Code Monkey logo

java-firebase-fcm-client's Introduction

Overview

java-firebase-fcm-client is push notification client for firebase cloud messaging API.

  • You can use on your server to send downstream message from firebase.
  • Whether the mobile(like Android) application is foreground or background, you can handle push notifications in the same way, without showing notification in the notification tray.

It is licensed under MIT license.

Quick start

Example Server->Mobile entity(mobile devices,browser front-end apps) (like Android)

  • Push notification to Android Device from your server
  • You can write like this code on your server.
package com.example;

import org.riversun.fcm.FcmClient;
import org.riversun.fcm.model.EntityMessage;
import org.riversun.fcm.model.FcmResponse;

public class SendMessageExample1 {
	public static void main(String[] args) {

		FcmClient client = new FcmClient();
		// You can get from firebase console.
		// "select your project>project settings>cloud messaging"
		client.setAPIKey("[YOUR_SERVER_API_KEY_HERE]");

		// Data model for sending messages to specific entity(mobile devices,browser front-end apps)s
		EntityMessage msg = new EntityMessage();

		// Set registration token that can be retrieved
		// from Android entity(mobile devices,browser front-end apps) when calling
		// FirebaseInstanceId.getInstance().getToken();
		msg.addRegistrationToken("REGISTRATION_TOKEN_FOR_AN_ANDROID_DEVICE_HERE");

		// Add key value pair into payload
		msg.putStringData("myKey1", "myValue1");
		msg.putStringData("myKey2", "myValue2");

		// push
		FcmResponse res = client.pushToEntities(msg);

		System.out.println(res);

	}
}

EntityMessage.java simply wraps following JSON.

{ "data":{
    "myKey1":"myValue1",
    "myKey2":"myValue2"
  },
  "registration_ids":["your_registration_token1","your_registration_token2]
}

Example Receive push notification on Android

Whether the application is foreground or background, you can handle push notifications in the same way.

Example for Android is here.

https://github.com/riversun/android-firebase-fcm-client

Example for Android overview

- MyFirebaseMessagingService.java

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import java.util.Map;

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        Map<String, String> data = remoteMessage.getData();
        String value1 = data.get("myKey1");
        String value2 = data.get("myKey2");
    }
}

- MyFirebaseInstanceIDService.java

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
    @Override
    public void onTokenRefresh() {
        //registration token
        final String registrationToken = FirebaseInstanceId.getInstance().getToken();

        //TODO
        //Send to the server to register and identify the entity(mobile devices,browser front-end apps) in order to send a push notification to this entity(mobile devices,browser front-end apps).

    }
}

- Add services to your AndroidManifest.xml

<manifest>
  <application>
  ...

  <service android:name=".MyFirebaseMessagingService">
    <intent-filter>
      <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
  </service>
  <service android:name=".MyFirebaseInstanceIDService">
    <intent-filter>
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
    </intent-filter>
  </service>
  ...
  </appliation>
</manifest>

- [project]/app/build.gradle

Add this into dependencies

 compile 'com.google.firebase:firebase-core:10.0.1'
 compile 'com.google.firebase:firebase-messaging:10.0.1'

Add this, it is important to place this at the bottom line.

apply plugin: 'com.google.gms.google-services'

- [project]/build.gradle

Add this into dependencies

 classpath 'com.google.gms:google-services:3.0.0'

if you want to check if google play service is available on the entity(mobile devices,browser front-end apps).Write like this.

        GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
        int resultCode = apiAvailability.isGooglePlayServicesAvailable(this);

        if (resultCode != ConnectionResult.SUCCESS) {
            if (resultCode == ConnectionResult.SUCCESS) {

            } else {
                apiAvailability.getErrorDialog(this, resultCode, 1).show();
            }
        }

Links

Firebase Console

https://console.firebase.google.com/

Format

https://firebase.google.com/docs/cloud-messaging/http-server-ref https://firebase.google.com/docs/cloud-messaging/send-message

Example code for Android (receiving message)

https://github.com/riversun/android-firebase-fcm-client

Downloads

maven

  • You can add dependencies to maven pom.xml file.
<dependency>
  <groupId>org.riversun</groupId>
  <artifactId>fcm</artifactId>
  <version>0.2.0</version>
</dependency>

java-firebase-fcm-client's People

Contributors

riversun avatar

Watchers

James Cloos avatar Prashant Kumar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.