android 호환 - GCM에서 FCM으로 이전해야하나요?





차이 제한 (5)


Google은 Android : iOS 및 Chrome 이외의 여러 플랫폼에 메시지를 보내도록 GCM을 확장했습니다. Firebase는 크로스 플랫폼으로 유명하므로 FCM은 Android, iOS 및 모바일 웹 용으로 설계된 Firebase 제품군에 자연스럽게 들어 맞습니다.

FCM

  • GCM의 고급 / 개선 버전이지만 새로운 브랜드 이름 Firebase
  • 매우 쉽고 / 간소화 된 클라이언트 개발
  • 누구나 특정 장치에 알림을 보낼 수있는 서버리스 콘솔
  • 알림 페이로드 : 4KB, 메시지 페이로드 : 2KB. 알림에는 기기 및 앱 정보도 포함됩니다.
  • 장치가 오프라인 인 경우 장치 당 100 개의 알림 / 메시지를 저장합니다.

Google은 Google Cloud Messaging이 이제 Firebase Cloud Messaging임을 발표했습니다. GCM의 기존 사용자와 마이그레이션 (필요한 경우)은 무엇을 의미합니까?




Firebase Cloud Messaging (FCM)은 GCM의 새로운 버전입니다. 안정적이고 확장 가능한 GCM 인프라와 새로운 기능을 상속합니다! 자세한 내용은 FAQ를 참조하십시오. 새 앱에 메시징을 통합하려면 FCM부터 시작하십시오. GCM 사용자는 현재와 미래의 새로운 FCM 기능을 활용할 수 있도록 FCM으로 업그레이드하는 것이 좋습니다.

  1. FCM은 Firebase 브랜드의 GCM의 새 버전입니다. Google은 GCM의 핵심 인프라를 상속하여 Android, iOS 및 Chrome에서 안정적으로 메시지를 전달할 수 있도록합니다.

  2. 예, GCM의 일부 기능은 더 이상 사용되지 않지만 모든 이전 고객을 지원합니다.

  3. GCM SDK에서 FCM SDK로 업그레이드하려면 upgrading 마이그레이션 가이드를 참조하세요.

자세한 내용은. https://developers.google.com/cloud-messaging/faq




FCM이란 무엇이며 왜 FCM을 사용해야합니까?

FCM (Firebase Cloud Messaging)은 Firebase 브랜드에 기반한 Google Cloud Messaging API의 새롭고 향상된 버전입니다. 여기에는 GCM의 모든 기능과 몇 가지 추가 기능이 있습니다. Firebase FAQ에 따르면, GCM의 핵심 인프라를 상속하며, 새로운 SDK를 통해 클라우드 메시징 개발을보다 쉽게 ​​할 수 있습니다. Google은 클라우드 메시징 FAQ 에서 FCM을 발표하기로 한 결정에 대해 설명하면서 다음과 같이 썼습니다.

Firebase는 크로스 플랫폼으로 유명하므로 FCM은 Android, iOS 및 모바일 웹 용으로 설계된 Firebase 제품군에 자연스럽게 적합합니다.

Android highlights API의 GCM에서 FCM으로 업그레이드 할 것을 권장합니다. 이렇게하는 이유는 Firebase FAQ에 나와 있습니다 :

FCM SDK로 업그레이드 할 때의 이점은 다음과 같습니다.

  • 간단한 클라이언트 개발. 더 이상 자체 등록 또는 재시도 재시험을 작성할 필요가 없습니다.
  • 즉시 사용할 수있는 알림 솔루션 Firebase Analytics 통찰력을 기반으로 특정 대상을 대상으로하는 알림을 보낼 수있는 웹 콘솔과 함께 서버리스 알림 솔루션 인 Firebase 알림을 사용할 수 있습니다.

GCM은 지원 중단 되었습니까?

GCM의 일부 기능은 이미 사용 중지되었으며 (예 : https://developers.google.com/cloud-messaging/android/legacy-regid 참조) 향후 며칠 내에 GCM은 완전히 지원 중단 될 예정입니다. Google은 말한다 :

현재 많은 개발자가 GCM SDK를 사용하여 알림을 처리하고 있으며 클라이언트 앱 업그레이드에 시간이 걸리기 때문에 Google은 현재 GCM Android 및 iOS SDK의 최신 버전을 계속 지원할 것입니다.

그러나 모든 새로운 클라이언트 측 기능은 FCM SDK에만 추가 될 것입니다. FCM SDK로 업그레이드하는 것이 좋습니다.

오래된 Android 애플리케이션을 GCM에서 FCM으로 업데이트하는 방법

upgrading :

GCM 프로젝트를 Firebase 프로젝트로 가져 오기 :

Firebase 콘솔에서 Import Google Project를 선택하십시오.

기존 프로젝트 목록에서 GCM 프로젝트를 선택하고 Firebase 추가를 선택 하십시오 .

Firebase 시작 화면에서 Android 앱에 Firebase 추가를 선택 하십시오 .

패키지 이름과 SHA-1을 입력하고 Add App을 선택 하십시오 . Firebase 앱을위한 새로운 google-services.json 파일이 다운로드됩니다.

계속을 선택하고 Android Studio에서 Google 서비스 플러그인을 추가하는 자세한 안내를 따르세요.




업데이트 : 최근 이메일을 통해 GCM이 사용 중지되었으며 내년에 완전히 삭제 될 예정이며 (2019) 모든 GCM 사용자는 FCM으로 이전을 시작해야합니다. 자세한 내용은 here 내 대답을 참조 here .

Pritam Baral의 답변 외에 FCM의 핵심은 GCM 자체로 구성된다는 점에 유의하십시오. 실제로 마이그레이션 할 필요는 없지만 FCM으로 마이그레이션 할 때 FCM에 연결된 모든 기능을 사용할 수 있으므로 권장됩니다. Firebase 공식 가격 책정 페이지를 참조 할 때 무료 로 제공되는 기능은 다음과 같습니다.

애널리틱스, 앱 색인 생성, 인증, 동적 링크, FCM, 초대, 알림, 오류보고 및 원격 구성

GCM 및 FCM FAQ에 명시된 바와 같이 사전 IO GCM 구현은 향후 더 오랜 시간 동안 작동해야합니다.

현재 많은 개발자가 GCM SDK를 사용하여 알림을 처리하고 있으며 클라이언트 앱 업그레이드에 시간이 걸리기 때문에 Google은 현재 GCM Android 및 iOS SDK의 최신 버전을 계속 지원할 것입니다.

그러나 모든 새로운 클라이언트 측 기능은 FCM SDK에만 추가 될 것입니다. FCM SDK로 업그레이드하는 것이 좋습니다.

최근 highlights :

Firebase Cloud Messaging은 Google Cloud Messaging API를 기반으로 개선되었습니다. com.google.android.gms.gcm을 사용하여 Google Cloud Messaging을 계속 사용할 수 있지만 com.google.firebase : firebase-messaging으로 upgrading 하는 것이 좋습니다.




<?php

function sendMessageToPhone($deviceToken, $collapseKey, $messageText, $yourKey) {    
    echo "DeviceToken:".$deviceToken."Key:".$collapseKey."Message:".$messageText
            ."API Key:".$yourKey."Response"."<br/>";

    $headers = array('Authorization:key=' . $yourKey);    
    $data = array(    
        'registration_id' => $deviceToken,          
        'collapse_key' => $collapseKey,
        'data.message' => $messageText);  
    $ch = curl_init();    

    curl_setopt($ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send");    
    if ($headers)    
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);    
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    
    curl_setopt($ch, CURLOPT_POST, true);    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    

    $response = curl_exec($ch);    
    var_dump($response);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
    if (curl_errno($ch)) {
        return false;
    }    
    if ($httpCode != 200) {
        return false;
    }    
    curl_close($ch);    
    return $response;    
}  

$yourKey = "YOURKEY";
$deviceToken = "REGISTERED_ID";
$collapseKey = "COLLAPSE_KEY";
$messageText = "MESSAGE";
echo sendMessageToPhone($deviceToken, $collapseKey, $messageText, $yourKey);
?>

위의 스크립트에서 변경하십시오.

"YOURKEY"를 API 키의 API 키에 연결하여 API 콘솔의 Server Key에 연결합니다.
기기의 등록 ID로 'REGISTERED_ID'
필요한 키가있는 "COLLAPSE_KEY"
보낼 메시지가있는 "메시지"

이 문제에 어떤 문제가 발생하는 경우 알려주십시오. 동일한 스크립트를 사용하여 성공적으로 알림을받을 수 있습니다.





android firebase google-cloud-messaging firebase-cloud-messaging