Firebase 푸시 알림의 중독성
iOS 응용 프로그램의 푸시 알림을 실현하고 싶어서 바로 Firebase Cloud Messaging(FCM)을 중심으로 사용했습니다.
그중에서 나는 내가 반한 곳과 해결 방법을 소개할 것이다.
원래 Firebase Notification과 FCM은 다릅니다.
문서를 읽을 때 이 차이는 매우 중요하다.
다음은 각자의 시계를 비교하는 것이다.
(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 등 기능은 매우 유용한 것 같다.
개발이 수월해지기 위해 적극적으로 사용하고 싶습니다.
Reference
이 문제에 관하여(Firebase 푸시 알림의 중독성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mituoh/items/2dc87618edf234afd8f0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)