초기화 옵션 문제 해결

유효한 Firebase 옵션 집합 없이 앱을 초기화하면 애플리케이션의 신규 사용자에게 심각한 문제가 발생합니다.

Firebase 옵션은 서비스에서 Firebase 서버 API와 성공적으로 통신하고 클라이언트 데이터를 Firebase 프로젝트 및 Firebase 애플리케이션에 연결하는 데 필요한 매개변수 집합입니다. Firebase 서비스는 Firebase 초기화 중에 생성된 Firebase Core 또는 일반 라이브러리에서 사용할 수 있는 유효한 Firebase 옵션을 사용합니다.

제대로 작동하려면 Firebase 서비스에 따라 다양한 Firebase 옵션이 필요하지만 모든 Firebase 서비스에는 다음 Firebase 옵션이 필요합니다.

  • API 키 - 참고: FCM 서버 키가 아닙니다. FCM 서버 키를 참조하세요.
    값 예시: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO
  • 프로젝트 ID - 값 예시: myapp-project-123
  • 애플리케이션 ID('AppID') - 플랫폼에 따라 형식이 달라지는 앱의 고유 식별자입니다.
    • Android의 경우: mobilesdk_app_id - 참고: Android 패키지 이름이 아닙니다.
      값 예시: 1:1234567890:android:321abc456def7890
    • iOS+의 경우: GOOGLE_APP_ID - 참고: Apple 번들 ID가 아닙니다.
      값 예시: 1:1234567890:ios:321abc456def7890

Android 앱 문제 해결

보안을 강화하기 위해 Firebase SDK는 2월 27일에 업데이트된 후 Firebase 인스턴스 ID 서비스를 Firebase Installations API의 종속 항목으로 대체했습니다.

Firebase 설치는 클라이언트 데이터를 Firebase 프로젝트에 연결하기 위해 필수 Firebase 옵션 API 키, 프로젝트 ID, 애플리케이션 ID의 존재 및 유효성을 검사합니다. 자세한 내용은 FirebaseOptions를 참조하세요.

Firebase 클라우드 메시징(FCM)과 Firebase 인스턴스 ID(IID)

앱의 신규 사용자에게 FCM 관련 문제가 발생하는 경우 필요한 Firebase 옵션 집합 없이 Firebase를 초기화하고 있는 것일 수 있습니다.

애플리케이션에서 불완전하거나 잘못된 google-services.json 구성 파일을 사용 중일 수 있습니다. 또는 앱에서 필요한 Firebase 옵션의 전체 집합 없이 프로그래매틱 방식으로 Firebase를 초기화합니다.

따라서 업데이트된 Firebase SDK와 함께 앱을 출시한 이후 앱을 설치한 최종 사용자에게 Firebase 클라우드 메시징과 같은 Firebase 서비스가 오작동할 수 있습니다. 또한 Firebase에 대한 요청이 반복해서 실패하면 앱의 최종 사용자 환경이 느려질 수 있습니다.

어떤 조치를 취해야 하나요?

애플리케이션의 Firebase 서비스 오작동을 해결하려면 다음 안내를 따르세요.

  1. 프로젝트의 유효한 API 키, 유효한 프로젝트 ID, 유효한 애플리케이션 ID(mobilesdk_app_id 또는 '앱 ID')로 Firebase를 초기화하여 애플리케이션을 업데이트합니다.
    • Firebase 구성 파일을 사용하는 기본 초기화 프로세스: Firebase Console에서 google-services.json 구성 파일을 다운로드한 후 앱의 기존 파일을 교체합니다.
    • FirebaseOptions 객체를 사용한 프로그래매틱 방식 초기화: Firebase Console에서 google-services.json 구성 파일을 다운로드하여 API 키, 프로젝트 ID, 애플리케이션 ID를 찾은 다음 앱의 FirebaseOptions 객체에서 이 값을 업데이트합니다.
  2. Play 스토어에 앱의 새 버전을 출시합니다.

Apple 앱 문제 해결

보안을 강화하기 위해 1월 14일에 Firebase SDK 업데이트 후 Firebase 인스턴스 ID 서비스를 Firebase Installations API의 종속 항목으로 대체했습니다.

Firebase 설치는 클라이언트 데이터를 Firebase 프로젝트에 연결하기 위해 필수 Firebase 옵션 API 키, 프로젝트 ID, 애플리케이션 ID의 존재 및 유효성을 검사합니다. 자세한 내용은 FIROptions를 참조하세요.

Firebase 클라우드 메시징(FCM)과 Firebase 인스턴스 ID(IID)

앱의 신규 사용자에게 FCM 관련 문제가 발생하는 경우 필요한 Firebase 옵션 집합 없이 Firebase를 초기화하고 있는 것일 수 있습니다.

애플리케이션에서 불완전하거나 잘못된 GoogleService-Info.plist 구성 파일을 사용 중일 수 있습니다. 또는 앱에서 필요한 Firebase 옵션의 전체 집합을 프로그래매틱 방식으로 초기화합니다.

따라서 업데이트된 Firebase SDK와 함께 앱을 출시한 이후 앱을 설치한 최종 사용자에게 Firebase 클라우드 메시징과 같은 Firebase 서비스가 오작동할 수 있습니다. 또한 Firebase에 대한 요청이 반복해서 실패하면 앱의 최종 사용자 환경이 느려질 수 있습니다.

어떤 조치를 취해야 하나요?

애플리케이션의 Firebase 서비스 오작동을 해결하려면 다음 안내를 따르세요.

  1. 프로젝트의 유효한 API 키, 유효한 프로젝트 ID, 유효한 애플리케이션 ID(GOOGLE_APP_ID 또는 '앱 ID')로 Firebase를 초기화하여 애플리케이션을 업데이트합니다.
    1. Firebase 구성 파일을 사용하는 기본 초기화 프로세스: Firebase Console에서 GoogleService-Info.plist 구성 파일을 다운로드한 후 앱의 기존 파일을 교체합니다.
    2. FIROptions 객체를 사용한 프로그래매틱 방식 초기화: Firebase Console에서 GoogleService-Info.plist 구성 파일을 다운로드하여 API 키, 프로젝트 ID, 애플리케이션 ID를 찾은 다음 앱의 FIROptions 객체에서 이 값을 업데이트합니다.
  2. 앱 스토어에 앱의 새 버전을 출시합니다.

FCM 서버 키

앱에서 Cloud API 키가 아닌 FCM 서버 키를 사용하는 경우 FCM을 통한 푸시 알림을 전송하기 위해 동일한 FCM 서버 키를 사용하면 보안 취약점이 발생할 수 있습니다. 이 경우 서버가 FCM에 대한 전송 요청을 인증하는 방법을 수정하는 것이 좋습니다.

FCM 서버 키(Firebase 또는 Cloud API 키와 동일하지 않음)는 애플리케이션에 포함되지 않아야 합니다. 이러한 이름은 프로젝트 이름으로 푸시 알림을 보내는 데 악용될 수 있습니다.