FCM 시작하기 [1]

참고!! 이 글의 모든 가이드를 따를 필요는 없습니다. 제가 스터디한 내용을 주먹구구로 작성한 내용입니다.
정확한 가이드는 firebase 공식 문서 페이지를 확인하세요!

1 step > 서버에 Firebase Admin SDK 추가 및 초기화

목표 : Firebase를 사용할 수 있도록 구성한다.

FCM을 사용하기 위한 준비 단계

  1. 앱에 Firebase 추가
    • 이유 : Firebase Admin SDK를 사용하려면 Firebase 프로젝트, Firebase 서비스와 통신할 서비스 계정 및 서비스 계정의 사용자 인증 정보를 포함하는 구성 파일이 필요하기 때문이다.
1.Firebase 프로젝트가 없으면 Firebase 콘솔에서 추가합니다. 프로젝트 추가 대화상자로도 기존 Google Cloud Platform 프로젝트에 Firebase를 추가할 수 있습니다.
2. 프로젝트의 설정 페이지에서 서비스 계정 탭으로 이동합니다.
3. 서비스 계정 탭의 Firebase Admin SDK 섹션 하단에 있는 새 비공개 키 생성 버튼을 클릭합니다.
* 버튼을 클릭하면 서비스 계정의 사용자 인증 정보를 포함하는 JSON 파일이 다운로드됩니다. 다음 단계에서 이 파일이 있어야 SDK를 초기화할 수 있습니다.
  1. 서버에 Firebase Admin SDK 추가
    • Admin 자바 SDK를 사용하는 경우 자바 7 이상을 실행하는 서버 (본인은 8을 사용함)
    • JAVA SDK 선택 (그 밖에 node.js, python, go 지원)
Firebase Admin 자바 SDK는 Maven 중앙 저장소에 게시되어 있습니다. 라이브러리를 설치하려면 build.gradle 파일에 종속 항목으로 선언합니다.
dependencies { 
  implementation 'com.google.firebase:firebase-admin:6.2.0' 
}

Maven을 사용하여 애플리케이션을 빌드하는 경우 pom.xml에 다음과 같은 종속 항목을 추가할  있습니다.

<dependency>
  <groupId>com.google.firebase</groupId> 
  <artifactId>firebase-admin</artifactId> 
  <version>6.2.0</version> 
</dependency>
  1. SDK 초기화
    • 1) 서비스 계정 사용자 인증 정보가 포함된 JSON 파일로 초기화하는 방법 (본인이 사용한 방법)
      public static void FCMInit() { 
         try { 
             FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json"); 
             FirebaseOptions options = new FirebaseOptions.Builder() 
                     .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                     .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
                     .build();
      
             FirebaseApp.initializeApp(options); 
             System.out.println("FCM INIT SUCCESS!"); 
      
         } catch (Exception e) { 
             System.out.println(e.getMessage());
         } 
       }
      
    • Admin SDK를 사용하면 관리자 권한 환경에서 Firebase와 상호 작용하여 다음과 같은 작업을 수행할 수 있다.
      • 전체 관리자 권한으로 실시간 데이터베이스 데이터를 읽고 쓴다.
        • FCM 서버 프로토콜에 대한 간단한 대안적인 접근법을 사용하여 프로그래밍 방식으로 Firebase 클라우드 메시징 메시지를 전송한다.
      • Firebase 인증 토큰을 생성하고 검증한다.
        • Cloud Storage 버킷과 같은 Google Cloud Platform 리소스 및 Firebase 프로젝트에 연결된 Firestore 데이터베이스에 액세스한다.
      • 간소화된 관리자 콘솔을 직접 만들어 인증을 위해 사용자 데이터 조회, 사용자의 이메일 주소 변경과 같은 작업을 수행한다.
        • Firebase 콘솔 프로젝트를 만들고 서비스 계정 사용자 인증 정보가 포함된 JSON 파일을 다운로드했으면 다음 코드로 SDK를 초기화할 수 있다.
    FileInputStream refreshToken = new FileInputStream("path/to/refreshToken.json");

    FirebaseOptions options = new FirebaseOptions.Builder()
        .setCredentials(GoogleCredentials.fromStream(refreshToken))
        .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
        .build();

    FirebaseApp.initializeApp(options);

주의 : Admin SDK의 특정 토큰 발급 및 검증 기능은 인증서 사용자 인증 정보로 인증된 경우에만 사용할 수 있다. 그러나 인증, 실시간 데이터베이스 및 FCM API에는 인증 정보에 관계없이 액세스할 수 있다.

여러 앱 초기화 방법은 사이트를 참고할 것 . 이 과정을 따르면 준비 완료!! :)

참조


https://firebase.google.com/docs/admin/setup