본문 바로가기
개발/Unity

Unity)Firebase) Cloud Messaging (FCM - Notification / Push Messasge)

by 테샤르 2022. 5. 24.

Firebase Cloud Messaging (푸쉬알림)

Firebase 기능에서 푸쉬(알림)를 간단하게 지원하는게 있다.

Console에서 셋팅을 해서 알림을 설정할수 있다.

 

<Firebase Console - Cloud Messaging>

 

반응형

 

대략적인 아키텍처 개요는 다음과 같다.

Unity로 환경을 구성하는것을 포스팅한다는것을 참고부탁드린다.

 

알람이오게되면 알람이 표기가되고 상태바에도 해당 알람이 표기가된다.

간단하게 ICON /  제목 / 내용 정도로 표기가된다.

해당 기능을 사용하기전에는 Firbase 기본적인 설정

(Firebase 앱 등록이 이미 선행되어야 한다. Firebase 생성 -> 프로젝트연결 -> google-service.json 포함)

 

FirebaseMessaging.unitypackage를 import 한다.

 

최초에는 Google Play 서비스 요구사항을 확인하고 이후에 메시징을 받을수있는 코드를 처리한다.

<Unity 테스트 코드>

<서비스 확인>

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

<FCM 초기화>

public void Start() {
  Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
  Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}

public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
  UnityEngine.Debug.Log("Received Registration Token: " + token.Token);
}

public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
  UnityEngine.Debug.Log("Received a new message from: " + e.Message.From);
}

 

< Notification Custom (아이콘 이미지 / 문자 컬러)>

Android/res/drawable-hdpi

 

Android/res/colors.xml

<AndroidManifest.xml>

<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.unity3d.player"
    xmlns:tools="http://schemas.android.com/tools">
    <application>

      <!-- [START fcm_default_icon] -->
      <meta-data
         android:name="com.google.firebase.messaging.default_notification_icon"
         android:resource="@drawable/notification_icon" />
      <meta-data
            android:name="com.google.firebase.messaging.default_notification_color"
            android:resource="@color/notifiction_color" />
      <!-- [END fcm_default_icon] -->
        <activity android:name="com.unity3d.player.UnityPlayerActivity"
                  android:theme="@style/UnityThemeSelector">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
        </activity>
    </application>

  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="com.android.vending.CHECK_LICENSE"/>
</manifest>

<결과 확인>

Icon 변경 및 컬러 적용 확인

Firebase 를 사용하는 과정에서 Notification도 손쉽게 구현과 테스트가 되서 금방 구현했고 어렵지 않았다.

꽤나 괜찮은 기능이다. 스케줄설정도 가능하고 여러가지 더 확장기능(딥링크, 주제로 메시지전송)등이 가능하다.

 

Firebase 클라우드 메시징 : [ 링크 ]

 

Firebase 클라우드 메시징  |  Firebase Documentation

Firebase 클라우드 메시징(FCM)은 무료로 메시지를 안정적으로 전송할 수 있는 크로스 플랫폼 메시징 솔루션입니다.

firebase.google.com

 

★★☆☆☆

 

반응형

댓글