2026-05-12 18:10:02.438 22875-22902 GoogleApiManager com.example.got_you_studying E Failed to get service from broker. java.lang.SecurityException: Unknown calling package name 'com.google.android.gms'. at android.os.Parcel.createExceptionOrNull(Parcel.java:3340) at android.os.Parcel.createException(Parcel.java:3324) at android.os.Parcel.readException(Parcel.java:3307) at android.os.Parcel.readException(Parcel.java:3249) at bjcn.a(:com.google.android.gms@261631035@26.16.31 (260400-900800821):36) at bjaj.z(:com.google.android.gms@261631035@26.16.31 (260400-900800821):143) at bigf.run(:com.google.android.gms@261631035@26.16.31 (260400-900800821):42) at android.os.Handler.handleCallback(Handler.java:995) at android.os.Handler.dispatchMessage(Handler.java:103) at czrc.mD(:com.google.android.gms@261631035@26.16.31 (260400-900800821):1) at czrc.dispatchMessage(:com.google.android.gms@261631035@26.16.31 (260400-900800821):5) at android.os.Looper.loopOnce(Looper.java:248)

 

안드로이드 스튜디오를 써서 과제를 하는 중, 파이어베이스가 제대로 작동하지 않았다.

 

파이어베이스 콘솔에 등록도 했고, 경로에 넣으라는 json파일도 넣고,,

다 바꿨지만 데이터베이스에 접근을 할 수가 없었다.

 

알아보니 몇가지 문제점이 있었지만

그중에는 일반적인것도 있고 맥북이라서 나는 문제도 있었다.

 

크게 나누자면 문제는 3가지였다.

1. 에뮬레이터의 Services 설정 확인

2. 네트워크 설정

3. 콘솔에서 "규칙" 설정

 


1.에뮬레이터의 버전, services 확인

    22902 GoogleApiManager	com.example.got_you_studying	E  Failed to get service from broker.

가장 처음에 떴던 에러다. 파이어베이스에 접근을 아예 못하고있는 듯 했다.

저 로그를 검색해보면 설치된 에뮬레이터의 api의 버전 문제라고 한다.

 

어느정도 검색해봤다면 버전은 무조건 맞추었을 테니까, 버전 다음으로 중요한 것은 저 play 쪽에 플레이 스토어 마크가 있는지 봐야한다.

 

설치한 에뮬레이터에 System Image를 설치해줘야하는데, 이부분을

Google APIs ARM 64 v8a System Image가 아닌

Google Play ARM 63 v8a System Image를 설치해줘야했다.

 

 

 

 

그런데 혹~시 아래처럼 Services를 펼쳤을때에 Google Play Store 가 아예 없을 수도 있다.

있음 / 없음

 

 

 

 

그럴때에는 처음 에뮬레이터에  Add Device를 할 때, 저 Play 칸에 플레이 마크가 있는지를 봐야한다.

마크가 달려있는 가상기기만 구글 플레이 스토어로 이미지를 설치할 수 있었다.

 

이렇게 에뮬레이터 설정을 하고 cold boot를 하면 아까 그 에러는 뜨지 않았다.


2. 네트워크 설정

java.net.UnknownHostException: Unable to resolve host "firestore.googleapis.com": No address associated with hostname

이건 윈도우os의 기기에서는 없고, 맥북에서 실행한 안드로이드 스튜디오에서 돌리는 에뮬레이터에서만 있는 문제같았다.

 

한마디로 에뮬레이터가 인터넷에 연결을 못하고있는 문제였다.

실제로 에뮬레이터 안에서 구글에 들어가려고 해도 네트워크가 없어서 들어갈 수 없었다.

 

꽤 유명한 문제 같았다.

아래의 스택오버플로우에 자세히 잘 나와있다.

https://stackoverflow.com/questions/50670547/android-studio-android-emulator-wifi-connected-with-no-internet

보면 두가지 방법이 있는데, 둘 다 환경에따라 되기도하고 안되기도 하는 듯 하다.

1.맥북의 네트워크를 끈다 -> 노트북 재부팅 -> 에뮬레이터 wipe data 후 cold boot ->

에뮬 네트워크 연결(안됐다고 뜨는데 사실은 된거라고 함) -> 노트북 와이파이 연결

 

2.맥북의 설정에 DNS 검색 -> DNS 서버 메뉴 진입 -> IPv4또는 IPv6주소에 직접 [8.8.8.8]을 추가

 

난 처음에 2번방법은 귀찮을 것 같아서, 그리고 오랫동안 끈 적이 없던 노트북을 재부팅할 겸 1번방법을 했다.

그렇게 3번정도를 반복했는데 안됐다.

 

2번방법이 훨씬 쉽고 간단했다. 아까 그 에러는 이제 안떴다.

 


3. 콘솔에서 규칙 설정

이건 아주 간단했다.

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

저 write: if true 부분이 false로 돼있으면 권한이 없어서 에러가 난다.

true로 바꿔주면 에러가 안난다.

 

이러면 이제 잘 작동한다!

기존에는 velog에 글을 작성했었다. 

그쪽이 좀 더 개발자 친화적인 분위기라서 좋았지만, 써놓은 글에 대한 분류가 힘들어서 확장이 어렵겠다고 판단했다.

앞으로는 좀 꾸준히 글을 작성해 보겠다는 다짐과 함께 새로 만들었다.

 

velog에 있던 글들은 건질만한 것들을 이쪽에 그대로 옮겨놓을 생각이다.

 

+ Recent posts