You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成FCM推送报错:刷新访问令牌时出现未知错误

解决Spring Boot集成FCM时"Unexpected error refreshing access token"错误

针对你遇到的FCM访问令牌刷新错误,以下是几个可行的排查和解决方向:

1. 重新验证服务账号密钥文件

  • 从Firebase控制台重新下载firebase-service-account.json,避免使用复制粘贴或已过期的文件。
  • 检查文件内的private_key字段是否完整,确保没有丢失换行符或格式错乱(该字段通常以-----BEGIN PRIVATE KEY-----开头,-----END PRIVATE KEY-----结尾)。

2. 升级Firebase Admin SDK版本

你当前使用的9.1.1版本较旧,存在已知的令牌刷新相关bug。建议升级到最新稳定版:

<dependency>
    <groupId>com.google.firebase</groupId>
    <artifactId>firebase-admin</artifactId>
    <version>22.0.0</version> <!-- 替换为Maven仓库中的最新稳定版本 -->
</dependency>

3. 优化FirebaseApp初始化逻辑

避免重复初始化FirebaseApp导致的资源冲突,修改Bean初始化代码:

@Bean
FirebaseMessaging firebaseMessaging() throws IOException {
    GoogleCredentials googleCredentials = GoogleCredentials
            .fromStream(new ClassPathResource("firebase-service-account.json").getInputStream());
    FirebaseOptions firebaseOptions = FirebaseOptions
            .builder()
            .setCredentials(googleCredentials)
            .build();

    // 检查是否已存在同名App,避免重复初始化
    FirebaseApp app = FirebaseApp.getApps().stream()
            .filter(a -> "<project-name-here>".equals(a.getName()))
            .findFirst()
            .orElseGet(() -> FirebaseApp.initializeApp(firebaseOptions, "<project-name-here>"));
            
    return FirebaseMessaging.getInstance(app);
}

4. 检查网络连通性

  • 确保服务器能正常访问Google OAuth2令牌服务(https://oauth2.googleapis.com/token),若在国内环境需配置合规的网络代理。
  • 排查Spring Boot项目是否有自定义的网络拦截器、RestTemplate配置,避免干扰FCM SDK的网络请求。

5. 确认服务账号权限

再次验证服务账号的角色权限:

  1. 登录Google Cloud控制台,进入对应项目 → IAM与管理员 → IAM
  2. 找到firebase-service-account.json中client_email对应的账号,确认其拥有Firebase Cloud Messaging Admin或Editor角色。

6. 调整消息发送的异步调用方式

sendAsync(message).get()会阻塞线程且无超时控制,可能引发超时异常,建议添加超时限制:

public String send(Note note) throws FirebaseMessagingException, ExecutionException, InterruptedException, TimeoutException {
    // 省略通知构建代码...
    return firebaseMessaging.sendAsync(message).get(5, TimeUnit.SECONDS);
}

内容的提问来源于stack exchange,提问作者Meeran Malik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:42:08