I've had reasonable success implementing FCM in my Android App, however getting control of how long it takes to get a message delivered to the device is proving a bit of a challenge and subject to a raft of factors (FCM itself, coverage, wifi/3g heartbeat, priority, sleepiness, idleness, etc, etc).
Obviously, instant push-through is good, however there is quite a variation with the same version of the App on the same device sitting in exactly the same place over a period of time (sometimes I move it and messages burst through). FCM diagnostics are quite useful, and here are some examples;
MESSAGE 0:1485... PERFECT (BURGLAR APPREHENDED)
Current Status Acknowledged
Collapse Key n/a
TTL 2,419,200
TIME CURRENT STATUS
Jan 31, 5:33 PM Device connected
Feb 1, 4:44 PM Accepted
Feb 1, 4:44 PM Delivered
Feb 1, 4:45 PM Acknowledged
MESSAGE 0:14860... A BIT SLOWER (BURGLAR GOT AWAY WITH TV)
Current Status Acknowledged
Collapse Key n/a
TTL 2,419,200
TIME CURRENT STATUS
Feb 3, 11:04 AM Device connected
Feb 3, 11:30 AM Accepted
Feb 3, 11:30 AM Delivered
Feb 3, 11:42 AM Acknowledged
MESSAGE 0:1485... DELAYED (BURGLAR GOT AWAY WITH THE PORSCHE AND TV)
Current Status Acknowledged
Collapse Key n/a
TTL 2,419,200
TIME CURRENT STATUS
Jan 25, 9:42 PM Device connected
Jan 26, 3:57 AM Accepted
Jan 26, 3:57 AM Delivered
Jan 26, 3:58 AM Device disconnected
Jan 26, 4:15 AM Device connected
Jan 26, 4:15 AM Sent on reconnect
Jan 26, 4:15 AM Acknowledged
So, I can see what happened but I haven't had much luck establishing exactly why. Most days it's brilliant (and had been for months), the next day it isn't.
My specific question: Is there any deeper access to status of the FCM transaction..?
I'm particularly interested in finding out whether my "priority" parameter is actually getting through and being processed by FCM. Typical json snippet sent to FCM shown below
{"priority":"high","to":"dI3au0W8te...N7F","data":{"msgsndr":"ADMIN","msgtext":"URGENT: UNAUTHORISED ENTRY IN PROGRESS"}}
Any tips most appreciated
AFAIK, that's about it. No deeper details are available from the diagnostics. However if you're having trouble and need of further assistance on what's happening in the background, I suggest you contact Firebase Support.
For the
priority
, fairly sure that it will always get through so long as you declared it properly.