[FCM+JSON] FCM push 결과 -> Dart 에서 Parsing.
페이지 정보
작성자 sbLAB 댓글 0건 조회 1,049회 작성일 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마다 응답의 동일한 색인에 표시됩니다.
|
표 6. 주제 메시지 HTTP 응답 본문(JSON)
매개변수 | 사용 | 설명 |
---|---|---|
message_id | 선택사항, 숫자 | FCM이 성공적으로 요청을 수신한 경우 모든 구독 기기로 전송을 시도하는 주제 메시지 ID입니다. |
error | 선택사항, 문자열 | 메시지를 처리할 때 발생한 오류입니다. 가능한 |
- 이전글[nodejs] package.json / npm run startdev / "startdev": "nodemon --watch app.js" 23.05.21
- 다음글[npm] npm options 23.04.29
댓글목록
등록된 댓글이 없습니다.