Firebase 푸시 알림의 중독성

구글 I/O 2016이 새로운 Firebase를 발표했다.
iOS 응용 프로그램의 푸시 알림을 실현하고 싶어서 바로 Firebase Cloud Messaging(FCM)을 중심으로 사용했습니다.
그중에서 나는 내가 반한 곳과 해결 방법을 소개할 것이다.

원래 Firebase Notification과 FCM은 다릅니다.

  • Firebase Notification은 FCM에서 구현되는 경량 서버 없는 메시지 서비스입니다.웹 콘솔에서 푸시 알림을 보내면 응용 프로그램의 그로스를 위해 간단하게 홍보 활동을 할 수 있다.
  • FCM은 HTTP 및 XMPP를 통한 다기능 메시징 서비스입니다.
  • 그래서 비슷하지만 사용법이 다른 서비스다.
    문서를 읽을 때 이 차이는 매우 중요하다.
    다음은 각자의 시계를 비교하는 것이다.
    (Firebase FAQ 참조https://firebase.google.com/support/faq/

    외부 서버에서 FCM을 사용하여 푸시 알림 보내기


    HTTP API를 통한 알림 푸시


    FCM 기능을 사용하면 웹 콘솔뿐만 아니라 API를 통한 푸시 알림도 가능합니다.
    다음은curl로 알림 요청을 보내는 예입니다.
    curl --header "Authorization: key=$api_key" \
         --header Content-Type:"application/json" \
         https://fcm.googleapis.com/fcm/send \
         -d "{\"to\": \"/topics/news\",\"notification\": {\"text\": \"メッセージ\"}}"
    
    $api_key Firebase 콘솔에서 다운로드 GoogleService-Info.plist, 복사 API_KEY 하십시오.
    명령을 실행하기 전에 수신하려는 터미널의 응용 프로그램에서 Subscribe/topics/news를 사용하십시오.
    샘플 응용 프로그램에 그 기능이 설치되어 있기 때문에 우선 지금부터 테스트를 시작하는 것이 좋다고 생각합니다.https://github.com/firebase/quickstart-ios/tree/master/messaging
    FCM에 대해서는 를 참조하십시오https://firebase.google.com/docs/cloud-messaging/server.

    어떻게 전체 사용자에게 푸시 알림을 보냅니까?


    프로그램이 시작될 때 Topic에 로그인하여 이 Topic에 대한 알림을 전송하면 됩니다.

    애플리케이션이 종료된 경우에도 알림


    FCM에서 API에서 알림을 푸시하면 실제 알림이 도착하기 전에 지연됩니다.또한 응용 프로그램을 종료한 경우 푸시 알림을 받지 않습니다.
    다른 한편, 컨트롤러에서 푸시 알림을 보내면 이런 문제가 발생하지 않습니다.
    따라서 FCM 요청에 Priority 데이터를 추가합니다.
    지정되지 않은 Priority가 nomal로 설정된 경우 지연 시간이 적고 애플리케이션이 종료되더라도 푸시 알림이 가능합니다.
    https://firebase.google.com/docs/cloud-messaging/concept-options#setting-the-priority-of-a-message
    다음은 우선 순위가 있는 오프라인 자체 검사 데이터의 예입니다.
    {
      "to": "/topics/news",
      "notification": {
        "text": "プッシュ通知"
      },
      "priority": "high"
    }
    
    배터리의 소모가 있기 때문에 사용자를 위해서도 적당한 곳에서 사용해야 한다.

    Firebase Notification에서 메시지를 만들 때 Topic이 나타나지 않음


    iOS Firebase SDK에서 FCM의 Topic에 등록하든 문서의 high 방법에 따라 실행하든 웹 콘솔에 옵션으로 표시되지 않습니다.
    (대략 Android, Web SDK도 마찬가지)
    Topic의 반영이 오래 걸렸기 때문이다.제 경우는 하루 정도 기다리면 콘솔에 반영됩니다. 다음 내용을 선택할 수 있습니다.
    문서대로 잘 안 돼서 깜짝 놀랐지만 머지않아 꼭 수정되겠죠.

    총결산


    이미 여러 곳에서 소개한 바와 같이 새로운 Firebase의 Analytics 등 기능은 매우 유용한 것 같다.
    개발이 수월해지기 위해 적극적으로 사용하고 싶습니다.

    좋은 웹페이지 즐겨찾기