푸시 알림을 보내기 위해 Google FCM을 사용하는 애플리케이션이 있습니다.
사용자 그룹에 푸시 알림을 보낼 때 MismatchSenderId
일부 사용자에 대한 응답을받습니다 . 하지만 모든 사용자는 똑같은 애플리케이션을 사용합니다. 일부 사용자는 어떻게 성공 응답을 받고 다른 사용자는 MismatchSenderId를 얻을 수 있습니까?
나는 많이 조사했고 FCM에 필요한 모든 전제 조건을 추가했는지 확인했습니다.
어떤 제안?
편집하다:
샘플 응답 :
{"multicast_id":5340432438815499122,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
편집 2 :
다음은 서버 측 전송 코드 (PHP)입니다.
$fields = array
(
'to' => $token,
'data' => $data
);
$headers = array
(
'Authorization: key=AIza**************************',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode($fields) );
curl_exec( $ch );
curl_close( $ch );
최신 정보:
SDK 업데이트로 문제가 해결 된 것 같습니다. 현재 최신 버전을 사용하고 있습니다 com.google.firebase:firebase-messaging:9.6.1
. 더 이상 “MismatchSenderId”가 표시되지 않습니다.
답변
답변
이 해결책을 찾았습니다.
- 먼저 서버 키가 정확하거나 AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX와 같은 올바른지 확인합니다.
- 그런 다음 79XXXXXXXX와 같은 발신자 ID도 확인했습니다.
- 주요 문제는 알림을 보내야하는 device_ID (UDID) 였습니다 . 실제로 FCM 에서 Android 측에서 얻은 DeviceId는 GCM 과 다릅니다 . FCM 에서 GCM 생성 DeviceId 를 사용할 수 없습니다 .
답변
이것은 나를 위해 일했습니다.
- 현재 Android 프로젝트가 연결된 FIREBASE 프로젝트를 확인하고 해당 프로젝트의 서버 키를 사용
합니다.
다른 firebase 프로젝트 (예 : Project 2)의 서버 키를 사용하고있었습니다. 나는 내 안드로이드 프로젝트 (Say Project 1)와 연결된 것과 동일한 서버 키를 사용했으며 작동했습니다. 내 경험상 하나의 전체 Android 프로젝트에 하나의 firebase 앱을 사용하면 문제가 해결되는 것 같았습니다.
답변
제 경우에는 한 프로젝트에서 google-services.json을 사용하고 다른 프로젝트에서 서버 키를 사용하는 등 프로젝트 자격 증명을 잘못 착각했습니다.
답변
그냥 참고로. 테스트중인 Android 앱이 최신 / 가장 큰 google-services.json 파일로 빌드되었고 FCM 콘솔에서 앱으로 보낼 수 있다고 맹세 했지만이 오류가 발생했습니다 . a를 수행 한 후 앱을 다시 빌드했으며 Clean Project
이제 등록한 FCM 토큰을 사용하여 앱에 보낼 수 있습니다. 따라서 너무 오랫동안 벽에 머리를 치기 전에 깨끗한 재건을 시도하십시오.
답변
이 문제를 해결하기 위해 몇 시간을 보냈습니다. 다른 FCM 계정 설정 (google-services.json)을 사용하여 토큰이 생성되고 다른 FCM 계정을 사용하여 알림이 설정되는 것을 확인했습니다. 둘 다 동기화했을 때 매력처럼 작동했습니다.
답변
senderId
FCM 콘솔의 프로젝트 번호와 다른 것을 발견하여
google-services.json을 다시 다운로드했고 모든 것이 잘 작동합니다.