[FCM+JSON] FCM push 결과 -> Dart 에서 Parsing. > Flutter/Dart/Node

본문 바로가기
사이트 내 전체검색

Flutter/Dart/Node

[FCM+JSON] FCM push 결과 -> Dart 에서 Parsing.

페이지 정보

작성자 sbLAB 댓글 0건 조회 1,697회 작성일 23-05-20 01:36

본문

FCM push 결과  -> Dart 에서 Parsing. 



  void main(List<String> args) {
    var jsonFcmResult = {
      "result": true,
      "success": 2,
      "failure": 0,
      "msg": {
        "multicast_id": 2040850597035964881,
        "success": 2,
        "failure": 0,
        "canonical_ids": 0,
        "results": [
          {"message_id": "0:1684513136564277%30820c6b30820c6b"},
          {"message_id": "0:1684513136584024%30820c6b30820c6b"},
          {"error": "InvalidRegistration"}        
        ]
      }
    };

    var objFromJson = FullDataModel.fromJson(jsonFcmResult);
    print(objFromJson.result); // result
    print(objFromJson.success); // success
    print(objFromJson.failure); // failure

    print(objFromJson.msg.multicast_id); // msg.multicast_id - 필수항목,숫자  멀티캐스트 메시지를 식별하는 숫자로 된 고유 ID
    print(objFromJson.msg.success); // msg.success - 오류 없이 처리된 메시지 수
    print(objFromJson.msg.failure); // msg.failure - 처리하지 못한 메시지 수
    print(objFromJson.msg.canonical_ids); // msg.canonical_ids

    print(objFromJson.msg.results.toString());

    for(int i=0; i<objFromJson.results_list.length;i++){
    print(objFromJson.results_list[i].results_value);  
    }
  }

  //리턴된 JSON 전체 FullDataModel
  class FullDataModel {
    bool result;
    int success;
    int failure;
    MsgDataModel msg;
    List<ResultsDataModel> results_list;

    FullDataModel(this.result, this.success, this.failure, this.msg, this.results_list);

    FullDataModel.fromJson(Map<String, dynamic> json)
        : result = json['result'],
          success = json['success'],
          failure = json['failure'],
          msg = MsgDataModel.fromJson(json['msg']),
          results_list = List<dynamic>.from(json['msg']['results'])
              .map((i) => ResultsDataModel.fromJson(i))
              .toList();

    Map<String, dynamic> toJson() => {
          'result': result,
          'success': success,
          'failure': failure,
          'msg': msg.toJson(),
          'results_list': results_list.map((item) => item.toJson()).toList(),
        };
  }

  //리턴된 JSON 에서 msg 영역 MsgDataModel
  class MsgDataModel {
    int multicast_id;
    int success;
    int failure;
    int canonical_ids;
    dynamic results;

    MsgDataModel(this.multicast_id, this.success, this.failure, this.canonical_ids,this.results);

    MsgDataModel.fromJson(Map<String, dynamic> json)
        : multicast_id = json['multicast_id'],
          success = json['success'],
          failure = json['failure'],
          canonical_ids = json['canonical_ids'],
          results = json['results']; //[{message_id: 0:1684506202488428%30820c6b30820c6b}, {error: InvalidRegistration}]

    Map<String, dynamic> toJson() => {
          'multicast_id': multicast_id,
          'success': success,
          'failure': failure,
          'canonical_ids': canonical_ids,
          'results': results
        };
  }

  //리턴된 JSON 에서 msg 아래 results 리스트 영역 ResultsDataModel
  class ResultsDataModel {
    String results_value;

    ResultsDataModel(this.results_value);

    ResultsDataModel.fromJson(Map<String, dynamic> json)
        : results_value = json['message_id'] ?? json['error'] + ":error";

    Map<String, dynamic> toJson() => {'results_value': results_value};
  }

  


[결과]



  true
  2
  0
  2040850597035964881
  2
  0
  0
  [{message_id: 0:1684513136564277%30820c6b30820c6b}, {message_id: 0:1684513136584024%30820c6b30820c6b}, {error: InvalidRegistration}]
  0:1684513136564277%30820c6b30820c6b
  0:1684513136584024%30820c6b30820c6b
  InvalidRegistration:error

 



Firebase 클라우드 메시징 HTTP 프로토콜

https://firebase.google.com/docs/cloud-messaging/http-server-ref?hl=ko#notification-payload-support


표 5. 다운스트림 HTTP 메시지 응답 본문(JSON)

매개변수사용설명
multicast_id필수항목, 숫자멀티캐스트 메시지를 식별하는 숫자로 된 고유 ID입니다.
success필수항목, 숫자오류 없이 처리된 메시지 수입니다.
failure필수항목, 숫자처리하지 못한 메시지 수입니다.
results필수항목, 객체 배열처리된 메시지의 상태를 나타내는 객체의 배열입니다. 객체는 요청과 동일한 순서로 표시됩니다. 즉, 요청의 각 등록 ID마다 응답의 동일한 색인에 표시됩니다.
  • message_id: 성공적으로 처리된 각 메시지의 고유 ID를 지정하는 문자열입니다.
  • error: 수신자의 메시지를 처리할 때 발생한 오류를 지정하는 문자열입니다. 가능한 값은 표 9에서 확인.

표 6. 주제 메시지 HTTP 응답 본문(JSON)

매개변수사용설명
message_id선택사항, 숫자FCM이 성공적으로 요청을 수신한 경우 모든 구독 기기로 전송을 시도하는 주제 메시지 ID입니다.
error선택사항, 문자열

메시지를 처리할 때 발생한 오류입니다. 가능한

댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
449
어제
407
최대
1,279
전체
212,219

그누보드5
Copyright © sebom.com All rights reserved.