FCM服务端 - 谷歌云推送 - “errorCode“: “SENDER_ID_MISMATCH“-故障记录

本文记录了在使用FCM服务端进行谷歌云推送时遇到的'errorCode': 'SENDER_ID_MISMATCH'问题的解决过程。通过分析json文件、token验证和错误排查,最终发现是前端提供的token数值错误导致。文章强调了正确验证token和理解FCM工作原理的重要性。
摘要由CSDN通过智能技术生成

前言

2020.10.27 我没解决,记录一些思路,这些问题其他人没有出现唯独我出现了,为什么。
2020.10.28 进度更新
2020.10.29 故障解决

核心代码

main

public class BaoTest {
   
	private static final String String = null;
	// 设备的token值
	public static String token =
			"AAAARWGhpmw:APA91bE6E7KCs-Tvjh5526LxGL-l1vYySzsnfNN8GhUpt9avG8bsjJEgqPX_txHBgHgfQ2BEt4Ms4aFRZGI7dbRm_pWy7JDqn1mIF9NYBU7WeLrOPt1j3GIll6njvxKkyp7r-q23hlh9";
	// 渠道名字,也是APP的名字
	// public static String appName = "VisionC";// 无关内容判别
	// 主题名字
	// public static String topic = "China";
	// 通知消息题目
	public static String title = "tip";
	// 通知消息内容
	public static String body = "body";

	// 测试内容

	public static void main(String args[]) throws Exception {
   
		// 添加tokens
		List<String> tokens = new LinkedList();
		tokens.add(token);
		// 设置Java代理,端口号是代理软件开放的端口,这个很重要。
		System.setProperty("proxyHost", "localhost");
		System.setProperty("proxyPort", "8580"); // 1080,8580

//            String jsonPath = "path/to/serviceAccountKey.json" ;
//            String dataUrl = "https://telecomm-773e6e.firebaseio.com/";
//    	String jsonPath = "D:\\eclipse_workplace_learn\\HelloSpringMVC\\src\\main\\resources\\"
//    			//+ "baotestserver-firebase-adminsdk-whfsf-311cd00bee"        	
//    			 +"visionc-cd27f-firebase-adminsdk-rdqff-26955b119f"
//    			+ ".json" ;

		// 初始化FirebaseApp
		if (!FireBaseUtil.initSDK())
			return;
		System.out.println("FireBaseUtil init over");

		FireBaseUtil.pushSingle(token, title, body); // 单推
//        
//        
//        FireBaseUtil.registrationTopic(appName, tokens, topic);  //设置主题
//        
//        FireBaseUtil.sendTopicMes(appName, topic, title, body);    //按主题推送
//        
//        FireBaseUtil.cancelTopic(appName, tokens, topic);  //取消主题
//        
		// 安卓设备推送
//        FireBaseUtil.pushSingleToAndroid(appName, token, title, body);
//        FireBaseUtil.registrationTopic(appName, tokens, topic);  //设置主题
//        FireBaseUtil.sendTopicMesToAndroid(appName, topic, title, body);
	}
}

FireBaseUtil

工具类

package com.bao;

import com.google.auth.oauth2.GoogleCredentials;
import com.google.common.annotations.VisibleForTesting;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.UserRecord;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.messaging.*;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 * {@code description: FireBaseUtil Firebase Cloud Message}
 * Google_FireBase推送工具类
 *
 * @author zhangkai
 * @version 1.0
 * @since 2019/7/5 15:48
 */
@Component
public class FireBaseUtil {
   

	   //获取AndroidConfig.Builder对象
    private static AndroidConfig.Builder androidConfigBuilder = AndroidConfig.builder();
    //获取AndroidNotification.Builder对象
    private static AndroidNotification.Builder androidNotifiBuilder = AndroidNotification.builder();
    public static FirebaseApp firebaseApp;
 // Retrieve services by passing the defaultApp variable...
    public static FirebaseAuth defaultAuth ;
    public static FirebaseDatabase defaultDatabase ;

    public static boolean initSDK() {
   
        try {
   
            //设置环境
        	FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials.getApplicationDefault())
                    .setDatabaseUrl("https://visionc-cd27f.firebaseio.com")
                    .build();

            firebaseApp = FirebaseApp.initializeApp(options);
         // Retrieve services by passing the defaultApp variable...
            defaultAuth = FirebaseAuth.getInstance(firebaseApp);          //not used
            defaultDatabase = FirebaseDatabase.getInstance(firebaseApp);  //not used

            System.out.println(firebaseApp.getName())
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值