Android에서 google-services.json을 넣지 않고 FCM에서 Push 수신
일반적으로 google-services.json을 app 폴더 아래에 배치하여 구현하고 싶습니다.
google-services.json은 FCM 계정 (및 프로젝트)에 연결되는 json 파일이며,
기본적으로 하나의 FCM 계정의 메시지만 검진할 수 있습니다.
같은 앱에서 사용자가 보낸 FCM 계정을 전환하고 싶다는 이야기가 있었기 때문에
그 조사의 메모 쓰기가됩니다.
전제 사항
전제 사항은 google-services.json을 배포 한 상태에서 FCM의 푸시 알림이 도착한 환경이라고 가정합니다.
푸시 알림을 받지 못한 경우 문제를 구분하기 위해 설정이 부족한지 여부
이번 설정이 효과가 없었는지를 구별하기 위해 상기 전제가 되고 있습니다.
그래서 google-services.json있는 상태와의 차이에 대한 설명입니다.
google-services plugin의 주석 처리
google-services.json을 찾는 google-services plugin 로드를 중지합니다.
여기가 있으면 google-services.json을 제거하면
google-services.json을 찾을 수 없다는 오류가 발생합니다.
google-services.json에서 필요한 정보 가져오기
나중에 google-services plugin이 수행하는 google-services.json 파일을 검색하는 대신 구현하기 때문에
google-services.json에서 [프로젝트 ID], [응용 프로그램 ID], [API 키]를 복사하여 저장하십시오.
나중에 사용합니다.
google-services.json
{
"project_info": {
"project_number": "XXX",
"project_id": "[プロジェクトID]",
"storage_bucket": "XXX"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "[アプリケーションID]",
"android_client_info": {
"package_name": "XXX"
}
},
"oauth_client": [
{
"client_id": "XXX",
"client_type": 3
}
],
"api_key": [
{
"current_key": "[APIキー]"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "XXX",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}
google-services.json 삭제
google-services.json을 찾는 방법을 멈추고 필요한 정보를 얻었으므로,
google-services.json 파일을 app 아래에서 제거합니다.
app 폴더 아래에 있는 google-services.json을 폴더를 열고 삭제합니다.
FireBase 초기화 구현
FireBase 초기화
var options = FirebaseOptions.Builder()
.setProjectId("[プロジェクトID]")
.setApplicationId("[アプリケーションID]")
.setApiKey("[APIキー]")
.build()
FirebaseApp.initializeApp(this, options)
(소스는 kotlin 프로그램입니다.)
상기를 최초로 기동하는 Activity의 onCreate등에 실장하면 push가 도착할까 생각합니다.
상황에 맞게 [프로젝트 ID], [응용 프로그램 ID], [API 키]를 변경하면,
FCM의 계정 전환 등을 할 수 있을까 생각합니다.
※어플리의 조작을 트리거에 상기를 호출해 전환을 하면,
지워야 할 FCM 계정에서도 Push가 도착하기 때문에
처음 설치 시점에서의 전환으로 한 용이 좋습니다.
여담
FirebaseApp.initializeApp(this, options)
라고 부르지 않으면시작 후 잠시 후 Exception이 발생하는 것 같습니다.
조작 후에 FCM을 초기화하고 싶다면,
먼저
FirebaseApp.initializeApp(this)
를 호출하면 Exception을 피할 수있었습니다.참고
아래 Firebase 문서를 바탕으로 시도한 내용입니다.
Reference
이 문제에 관하여(Android에서 google-services.json을 넣지 않고 FCM에서 Push 수신), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nishi-sankosc/items/60a0b5c2febb0ae1ed3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)