Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Flutter에서 Firebase 클라우드 메시징 클라이언트 앱 설정

Flutter에서 FCM 클라이언트를 설정하려면 다음 단계를 따르세요.

플랫폼별 설정 및 요구 사항

필요한 단계 중 일부는 대상 플랫폼에 따라 다릅니다.

iOS+

Xcode에서 앱 기능 활성화

애플리케이션이 메시지 수신을 시작하려면 먼저 Xcode 프로젝트에서 푸시 알림 및 백그라운드 모드를 활성화해야 합니다.

  1. Xcode 프로젝트 작업 공간( ios/Runner.xcworkspace )을 엽니다.
  2. 푸시 알림을 활성화 합니다.
  3. 백그라운드 가져오기원격 알림 백그라운드 실행 모드 를 활성화합니다.

APNs 인증 키 업로드

FCM을 사용하기 전에 APN 인증서를 Firebase에 업로드하세요. 아직 APNs 인증서가 없는 경우 Apple Developer Member Center 에서 하나 만드십시오.

  1. Firebase 콘솔의 프로젝트 내에서 기어 아이콘을 선택하고 프로젝트 설정 을 선택한 다음 클라우드 메시징 탭을 선택합니다.
  2. 개발 인증서, 프로덕션 인증서 또는 둘 다에 대한 인증서 업로드 버튼을 선택합니다. 하나 이상이 필요합니다.
  3. 각 인증서에 대해 .p12 파일을 선택하고 비밀번호가 있으면 제공하십시오. 이 인증서의 번들 ID가 앱의 번들 ID와 일치하는지 확인하십시오. 저장 을 선택합니다.

메서드 스위즐링

Apple 기기에서 FCM Flutter 플러그인을 사용하려면 메서드 재구성을 비활성화하면 안 됩니다. Swizzling이 필요하며 Swizzling이 없으면 FCM 토큰 처리와 같은 주요 Firebase 기능이 제대로 작동하지 않습니다.

기계적 인조 인간

구글 플레이 서비스

FCM 클라이언트에는 Google Play 서비스가 설치된 Android 4.4 이상을 실행하는 기기 또는 Google API와 함께 Android 4.4를 실행하는 에뮬레이터가 필요합니다. Google Play 스토어를 통해 Android 앱을 배포하는 것으로 제한되지 않습니다.

Play 서비스 SDK에 의존하는 앱은 Google Play 서비스 기능에 액세스하기 전에 항상 기기에서 호환되는 Google Play 서비스 APK를 확인해야 합니다. 메인 액티비티의 onCreate() 메서드와 onResume() 메서드의 두 위치에서 이 작업을 수행하는 것이 좋습니다. onCreate() 의 체크인은 성공적인 확인 없이 앱을 사용할 수 없도록 합니다. onResume() 의 체크인은 사용자가 뒤로 버튼과 같은 다른 수단을 통해 실행 중인 앱으로 돌아가는 경우에도 확인이 계속 수행되도록 합니다.

기기에 호환되는 Google Play 서비스 버전이 없는 경우 앱에서 GoogleApiAvailability.makeGooglePlayServicesAvailable() 을 호출하여 사용자가 Play 스토어에서 Google Play 서비스를 다운로드할 수 있도록 할 수 있습니다.

편물

FCM으로 웹 자격 증명 구성

FCM 웹 인터페이스는 "Voluntary Application Server Identification" 또는 "VAPID" 키라는 웹 자격 증명을 사용하여 지원되는 웹 푸시 서비스에 대한 전송 요청을 인증합니다. 앱에서 푸시 알림을 구독하려면 한 쌍의 키를 Firebase 프로젝트에 연결해야 합니다. 새 키 쌍을 생성하거나 Firebase 콘솔을 통해 기존 키 쌍을 가져올 수 있습니다.

새 키 쌍 생성
  1. Firebase 콘솔 설정 창의 클라우드 메시징 탭을 열고 웹 구성 섹션으로 스크롤합니다.

  2. 웹 푸시 인증서 탭에서 키 쌍 생성 을 클릭합니다. 콘솔에 키 쌍이 생성되었다는 알림이 표시되고 공개 키 문자열과 추가된 날짜가 표시됩니다.

기존 키 쌍 가져오기

웹 앱에서 이미 사용 중인 기존 키 쌍이 있는 경우 FCM API를 통해 기존 웹 앱 인스턴스에 연결할 수 있도록 FCM으로 가져올 수 있습니다. 키를 가져오려면 Firebase 프로젝트에 대한 소유자 수준 액세스 권한이 있어야 합니다. base64 URL 안전 인코딩 형식으로 기존 공개 및 비공개 키를 가져옵니다.

  1. Firebase 콘솔 설정 창의 클라우드 메시징 탭을 열고 웹 구성 섹션으로 스크롤합니다.

  2. 웹 푸시 인증서 탭에서 "기존 키 쌍 가져오기" 링크 텍스트를 찾아 선택합니다.

  3. 키 쌍 가져오기 대화 상자에서 해당 필드에 공개 및 개인 키를 제공하고 가져오기 를 클릭하십시오. 콘솔에 공개 키 문자열과 추가된 날짜가 표시됩니다.

키 형식 및 키 생성 방법에 대한 자세한 정보는 애플리케이션 서버 키 를 참조하십시오.

FCM 플러그인 설치

  1. 아직 수행하지 않은 경우 Flutter용 Firebase 플러그인을 설치하고 초기화합니다 .

  2. Flutter 프로젝트의 루트에서 다음 명령을 실행하여 플러그인을 설치합니다.

    flutter pub add firebase_messaging
    
  3. 완료되면 Flutter 애플리케이션을 다시 빌드합니다.

    flutter run
    

등록 토큰에 액세스

특정 장치에 메시지를 보내려면 해당 장치의 등록 토큰을 알아야 합니다. 이 자습서를 완료하려면 알림 콘솔의 필드에 토큰을 입력해야 하므로 토큰을 검색한 후 복사하거나 안전하게 저장해야 합니다.

앱 인스턴스에 대한 현재 등록 토큰을 검색하려면 getToken() 을 호출하십시오. 알림 권한이 부여되지 않은 경우 이 메서드는 사용자에게 알림 권한을 요청합니다. 그렇지 않으면 오류로 인해 토큰을 반환하거나 미래를 거부합니다.

final fcmToken = await FirebaseMessaging.instance.getToken();

웹 플랫폼에서 VAPID 공개 키를 getToken() 에 전달합니다.

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

토큰이 업데이트될 때마다 알림을 onTokenRefresh 스트림을 구독하십시오.

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

자동 초기화 방지

FCM 등록 토큰이 생성되면 라이브러리는 식별자와 구성 데이터를 Firebase에 업로드합니다. 토큰 자동 생성을 방지하려면 빌드 시 자동 초기화를 비활성화하십시오.

아이폰 OS

iOS에서 Info.plist 에 메타데이터 값을 추가합니다.

FirebaseMessagingAutoInitEnabled = NO

기계적 인조 인간

Android에서 다음 메타데이터 값을 AndroidManifest.xml 에 추가하여 애널리틱스 수집 및 FCM 자동 초기화를 비활성화합니다(둘 다 비활성화해야 함).

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

런타임 시 FCM 자동 초기화 다시 활성화

특정 앱 인스턴스에 대해 자동 초기화를 활성화하려면 setAutoInitEnabled() 를 호출합니다.

await FirebaseMessaging.instance.setAutoInitEnabled(true);

이 값은 일단 설정되면 앱을 다시 시작해도 지속됩니다.

다음 단계

클라이언트 앱이 설정되면 알림 작성기 로 다운스트림 메시지 전송을 시작할 준비가 된 것입니다. 백그라운드 앱에 테스트 메시지 보내기를 참조하십시오.

다른 고급 동작을 앱에 추가하려면 서버 구현 이 필요합니다.

그런 다음 앱 클라이언트에서 다음을 수행합니다.