Android - FCM

Android - FCM

十個月沒寫Android之後,開始寫Android,正好可以測試FCM,

雖然只是寫基本的Demo App,但可以順便測試Firebase的FCM

有兩篇文章,一是取得Token,二是傳送取得訊息

http://litotom.com/2016/06/24/android-firebase-cloud-messaging-1/

https://litotom.com/2016/06/26/firebase-android-send-2/

FCM變得比GCM還來的好用、好部署,

只需建立兩個Service,在AndroidManfiest加入兩個Service xml設定。

就不需要其它xml設定了。

過去GCM的授權設定都可以拿掉(C2DM)。

根據文章說法,我只要建立兩個service class

public class FcmInstancelIDService extends FirebaseInstanceIdService {
    public static String TAG = "FCM";
    @Override
    public void onTokenRefresh() {
        String token = FirebaseInstanceId.getInstance().getToken();
        Log.e(TAG,"Token = " + token);
    }
}
public class FcmMessageService extends FirebaseMessagingService {
    public static String TAG = "FCM";
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.d(TAG, "onMessageReceived:"+remoteMessage.getFrom());
    }
}

XML 設定在<application>裡面

        <service android:name=".FcmInstancelIDService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
        <service
            android:name=".FcmMessageService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>

build.gradle Project層要加入

    dependencies {
        ....
        classpath 'com.google.gms:google-services:3.0.0'
        ....
    }

build.gradle Module:app層


dependencies {
    ...
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    ...
}


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

且選擇Project選單(非Android),會出現app層底下的資訊,丟入google-services.json

google-services.json 會由Firebase平臺下載取得。

建立應用程式Firebase應用程式,需要SHA1,可以使用AndroidStuiod工具找到

點兩下執行signningReport可以在下方取得SHA1