XcodeNOOB
XcodeNOOB

Reputation: 2185

Firebase FCM push, getting Error Missing Registration | Android

I have seen this topic discussed before, but I think it's not the same scenario.

I'm trying to send push notification from one device (going to be an admin device) through FCM (Firebase Cloud Messaging) to all other devices, and i'm going exactly by their docs.

I have tried to subscribe to topics or keep it simple still getting the same error:

MissingRegistration

 String jsonData = "{\"to\":\"/topics/news\",\"notification\":{\"title\":\"title\",\"body\":\"text\" }}";
                byte[] postData = jsonData.getBytes(Charset.forName("UTF-8"));
                int postDataLength = postData.length;

                URL url = new URL("https://fcm.googleapis.com/fcm/send");
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                con.setDoInput(true);
                con.setDoOutput(true);
                con.setInstanceFollowRedirects(true);
                con.setRequestMethod("POST");

                con.setRequestProperty("Content-Type","application/json");
                con.setRequestProperty("Authorization","key=AIzaSyB70J***-z34q2_h*******qjZsM5zBIf8Y"); //I've added stars :-) 
                con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
                con.setRequestProperty("Content-Type","charset=UTF-8");
                con.setRequestProperty("Content-Length",Integer.toString(postDataLength));

                con.setUseCaches(false);

                DataOutputStream wr = new DataOutputStream(con.getOutputStream());
                wr.write(postData);

                InputStream inputStream= con.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                String line = null;
                String outPut = "";
                while (((line = reader.readLine()) != null)){
                    outPut += line;
                }

Upvotes: 6

Views: 16862

Answers (3)

Randika Vishman
Randika Vishman

Reputation: 8124

I was using/trying to send FCM Push notification using Postman web API Client app, to FCM URL: https://fcm.googleapis.com/fcm/send

And I had used a wrong Content-Type: application/x-www-form-urlencoded, So I changed it to

Content-Type:  application/json

This is basically required, as we are sending the Push Notification as a JSON Payload.

Cheers!

Upvotes: 12

XcodeNOOB
XcodeNOOB

Reputation: 2185

Thank you for posting your answer, anyway my codes works now, all I had to do is change the content-type (I have just copied from firebase docs the content-types )and send it to a subscribe topic.... now all my users can get the notification from my device :-).

Upvotes: 1

Leo Much
Leo Much

Reputation: 659

I also got the same error, but mine was on the server side(push from rails to android), but my problem was that i had forgot to specify the content type in the header(i am using RestClient to post to firebase). Hope it might help someone

RestClient.post( "https://fcm.googleapis.com/fcm/send",
             {:to => reg_id,:notification => options }.to_json,{:content_type => :json, :accept => :json,:Authorization => "key=*****"}

Upvotes: 8

Related Questions