Android

[Android Fcm]FirebaseApp name [DEFAULT] already exists!

박진만 2019. 5. 27. 09:51
반응형

Java 서버 환경에서 Firebase Admin SDK 를 이용하여 Fcm 발송을 구현

API 샘플 코드대로 구현 하였으나 아래와 같은 오류 발생

java.lang.IllegalStateException: FirebaseApp name [DEFAULT] already exists!

해결 방법 검색 결과 DEFAULT_APP_NAMEFirebaseApp.initializeApp 을 한번만 호출해야하는데 여러번 호출해서 발생하는 오류이다.

- 기존코드

FirebaseOptions options = new FirebaseOptions.Builder()
	.setCredentials(GoogleCredentials.fromStream(serviceAccount))
    .setDatabaseUrl("https://주소.firebaseio.com")
    .build();

FirebaseApp.initializeApp(options);

- 수정코드

FirebaseApp firebaseApp = null; 
List firebaseApps = FirebaseApp.getApps();

if(firebaseApps != null && !firebaseApps.isEmpty()){
	    	
	for(FirebaseApp app : firebaseApps){
       	if(app.getName().equals(FirebaseApp.DEFAULT_APP_NAME)) {
           	firebaseApp = app;
        }
	}
	        
}else{
   	FirebaseOptions options = new FirebaseOptions.Builder()
		.setCredentials(GoogleCredentials.fromStream(serviceAccount))
		.setDatabaseUrl("https://주소.firebaseio.com")
		.build();
	firebaseApp = FirebaseApp.initializeApp(options);		    	
}
반응형