티스토리 뷰

반응형

유니티에서 FCM(Firebase Cloud Message) 사용방법

 

1. 먼저 기존 프로젝트에서 Firebase 서비스를 사용하고 있다면 유니티에서 "firebasecppapp"을 검색해서 나온 것들의 버전을 살펴본다.

기존에 사용하던 Firebase 서비스가 8.8.0 버전인것을 확인

 

2. Unity Firebase SDK 8.8.0 버전을 다운로드 한다

https://dl.google.com/firebase/sdk/unity/firebase_unity_sdk_8.8.0.zip

혹시나 본인의 버전이 8.8.0이 아닌 다른 버전이라면 위 링크에 8.8.0 대신의 본인의 버전을 적으면 된다.

 

3. 압축을 풀고 FirebaseMessaging.Unitypackage를 불러온다

 

4. 불러오면 Force Resolve 를 할때까지 기다린다.

 

5. 프로젝트 세팅을 다음과 같이 설정한다.

6. Asset/Plugins/Andriod 에 AndroidManifest 파일을 연다

 

7. 아래 예시에서 14번째줄에 com.google.firebase.MessagingUnityPlayerActivity로 되어있는지 확인한다. 또한 20번째줄이 같이 들어있는지 확인한다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.devation.dragonmagician" android:versionCode="1" android:versionName="1.0">
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.WAKE_LOCK" />
  <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
  <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
  <permission android:name="패키지이름.permission.C2D_MESSAGE" android:protectionLevel="signature" />
  <uses-permission android:name=패키지이름.permission.C2D_MESSAGE" />
  <application android:label="@string/app_name" android:icon="@drawable/app_icon">
    <!-- The MessagingUnityPlayerActivity is a class that extends
         UnityPlayerActivity to work around a known issue when receiving
         notification data payloads in the background. -->
    <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
      <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>
    <service android:name="com.google.firebase.messaging.MessageForwardingService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="false"></service>
  </application>
</manifest>

 

8. 아래 코드를 추가한다

    #region FCM 관련 함수
    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);
    }
    #endregion
    
    
    #start 함수에 추가
    public void Start()
    {
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(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.
                Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
                
                Firebase.Messaging.FirebaseMessaging.TokenReceived -= OnTokenReceived;
                Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
                Firebase.Messaging.FirebaseMessaging.MessageReceived -= OnMessageReceived;
                Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;

                // 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.
            }
        });
    }

 

9. 빌드

 

10. Firebase Messaging 에서 메시지를 보낼 내용을 입력한다.

 

11. 완료(알림올때까지 약 3분정도 소요될 수 있음)

참고 : https://firebase.google.com/docs/cloud-messaging?hl=ko

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함