본문 바로가기

게임개발/Unity

[Unity] Firebase Push Message 푸시 알림 (FCM)

1. 파이어베이스 시작하기

 

[Unity] Firebase 시작하기 (tistory.com)

 

[Unity] Firebase 시작하기

1. 유니티 프로젝트를 생성하고, 플랫폼을 Android로 변경한다. 2. Package Name을 설정한다. 3. 파이어베이스 프로젝트를 생성한다. mrw0119.tistory.com/150 [Firebase] 프로젝트 생성 1. Firebase 웹사이트..

mrw0119.tistory.com

 

 

2. FirebaseMessaging 패키지를 임포트 한다.

 

 

FirebaseMessaging 패키지가 임포트되면 Plugins/Android 폴더에 AndroidManifest.xml 파일이 생성된다.


원래 유니티에서는 기본 activity로 com.unity3d.player.UnityPlayerActivity를 사용하는데 

AndroidManifest.xml 파일을 열어보면 activity가

com.google.firebase.MessagingUnityPlayerActivity로 바뀐 것을 확인할 수 있다.


Firebase 문서에 따르면 UnityPlayerActivity가

Firebase 클라우드 메시지 처리를 위한 onNewIntent를 구현하지 않기 때문에

UnityPlayerActivity를 확장한 MessagingUnityPlayerActivity로 대체한 것이라고 한다.

https://firebase.google.com/docs/cloud-messaging/unity/client

 

 

3. FirebaseManager.cs 스크립트에 코드를 작성한다.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using UnityEngine;
using Firebase;
using Firebase.Messaging;
 
public class FirebaseManager : MonoBehaviour
{
    FirebaseApp _app;
 
    void Start()
    {
        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
        {
            if (task.Result == DependencyStatus.Available)
            {
                _app = FirebaseApp.DefaultInstance;
 
                FirebaseMessaging.TokenReceived += OnTokenReceived;
 
                FirebaseMessaging.MessageReceived += OnMessageReceived;
            }
            else
            {
                Debug.LogError("[FIREBASE] Could not resolve all dependencies: " + task.Result);
            }
        });
    }
 
    void OnTokenReceived(object sender, TokenReceivedEventArgs e)
    {
        if (e != null)
        {
            Debug.LogFormat("[FIREBASE] Token: {0}", e.Token);
        }
    }
 
    void OnMessageReceived(object sender, MessageReceivedEventArgs e)
    {
        if (e != null && e.Message != null && e.Message.Notification != null)
        {
            Debug.LogFormat("[FIREBASE] From: {0}, Title: {1}, Text: {2}",
                e.Message.From,
                e.Message.Notification.Title,
                e.Message.Notification.Body);
        }
    }
}
cs

 

 

4. 프로젝트를 빌드하여 안드로이드폰에서 한번 실행시키고, 푸시 알림 테스트를 위해 바로 종료한다.

 

 

 

5. Firebase 웹사이트의 Cloud Messaging 탭에서 Send your first message를 선택한다.

 

 

 

7. 알림 제목과 텍스트를 작성한다.

 

 

 

8. Package Name과 예약, 이벤트 등도 설정하고 검토를 한다.

 

 

 

 

 

 

9. 알림 메시지 확인후 게시한다.

 

 

 

10. 잠시후 폰에서 푸시 알림을 확인할 수 있다.