일단 안드로이드 스튜디오에 내장된 기능으로 굉장히 쉽게 푸쉬 기능을 구축할 수 있다.


Tools->Firebase 를 눌러 Notifications으로 들어가 시키는대로 따라하면 기초적인 준비는 완료된다.




알림은 Firebase 콘솔에서 Notifications을 선택하여 쉽게 전송할 수 있다.


여기서 메시지를 입력하고 사용자 세그먼트에서 앱을 선택해서 전송해도 좋고 주제를 선택해도 좋다. 주제는 별도로 생성하는 파트는 없고 토픽을 구독하려는 어플리케이션이 있으면 해당 토픽을 자동적으로 생성하는 모양이다. 적용되는데는 시간이 꽤 걸리므로 인내가 필요한듯 싶다.




하지만 Firebase 콘솔에서는 어플리케이션이 켜져있을때 한정으로만 메시지 전송이 가능하기때문에 백그라운드에서도 작동하게 만드려면 API를 사용해야한다.


필자는 가장 익숙한 C#을 사용하였지만 Node.js를 사용하는 사람도 있고, 아마 php로도 되지않을까싶다.


관련 문서: https://firebase.google.com/docs/cloud-messaging/http-server-ref




WebClient클래스를 사용하여 POST형식으로 보내려고 하였으나 Header를 설정하는 부분에서 문제가 발생하여 HttpWebRequest를 사용하였다.


여기서 ContentType과 Authorization는 필수적으로 들어가야한다. Authorization해더가 없는 경우에는 인증 에러가 뜨기 때문에...



서버 키는 Firebase 콘솔에서 프로젝트 설정->클라우드 메시징에 들어가 확인할 수 있다.




해당 기능을 사용하면 푸쉬서버가 없어도 원하는 푸쉬 알림을 보낼 수 있지만 특정 변화에 자동적으로 반응하는 기능을 구현하고싶다면 서버가 필요하지않을까...

결국 문제를 해결하긴했는데 그냥 가장 좋은건 중복id를 사용안하는게 아닐까싶다 ㅎ.........



이 id가 자동으로 추가되는 시스템에서 장점을 하나도 느낄 수가 없다





그냥 xml보다 액티비티를 먼저 읽어들이는건지 아니면 그냥 이름순으로 읽어들이는지는 모르겠지만...아마 이름순으로 읽어들이는쪽이 아닐까 생각된다.




@+id와 @id의 차이도 잘 알아야 하는데 +가 붙은쪽이 새로 선언하는 쪽인데



그러니까 이 멍청한놈은 위쪽 문서에 @id가 있고 아래쪽 문서에 @+id가 있으면 이걸 똑똑하게 처리를 못 한다는것이다.



단순하게 순서대로 문서를 순회하면서 수작업으로 +가 없는곳에 +를 붙여주고 +가 이미 앞에서 붙었으면 +를 빼주는 작업으로 문제를 해결하였다.





비주얼 스튜디오 MFC ID관리도 하다가 가끔 뻑나면 짜증나고 그랬는데 이 부분에서만큼은 MFC가 훠어어어어얼씬 편하고 좋다고 느꼈다...

'Programing > Android' 카테고리의 다른 글

Firebase를 이용한 푸쉬알림 구현  (0) 2016.12.25

+ Recent posts