[firebase] MismatchSenderId를받는 FCM

푸시 알림을 보내기 위해 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”가 표시되지 않습니다.



답변

Firebase는 서버 키를 새 버전으로 업그레이드했습니다. 이전 키 대신 새 키를 사용하십시오.

설정-> 프로젝트 설정-> 클라우드 메시징 탭으로 이동하십시오.

여기에 이미지 설명 입력


답변

이 해결책을 찾았습니다.

  • 먼저 서버 키가 정확하거나 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 계정을 사용하여 알림이 설정되는 것을 확인했습니다. 둘 다 동기화했을 때 매력처럼 작동했습니다.


답변

senderIdFCM 콘솔의 프로젝트 번호와 다른 것을 발견하여
google-services.json을 다시 다운로드했고 모든 것이 잘 작동합니다.