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

Spring Boot集成Firebase发送推送报错:FirebaseApp [DEFAULT]不存在

问题分析与解决方案

错误原因

你初始化FirebaseApp时指定了自定义名称my-project-id,但调用FirebaseApp.getInstance()时,该方法默认会查找名为DEFAULT的实例,而当前环境中只有名为my-project-id的实例存在,因此抛出找不到默认实例的错误。


解决方法

方法一:使用默认名称初始化(推荐)

修改初始化方法,不指定自定义名称,让Firebase自动创建默认的DEFAULT实例:

@Override
public void initFirebase() {
    FirebaseApp.initializeApp();
    logger.info("firebase service initialized in FirebaseServiceImpl#initFirebase");
}

后续调用FirebaseApp.getInstance()就能正常获取到默认实例。

方法二:获取实例时指定自定义名称

如果确实需要保留自定义名称的实例,修改sendFirebaseMessage中获取实例的代码,指定你初始化时用的名称:

final FirebaseApp app = FirebaseApp.getInstance("my-project-id");
response = FirebaseMessaging.getInstance(app).send(message);

额外注意事项

确保initFirebase方法在sendFirebaseMessage之前执行,比如可以给initFirebase添加@PostConstruct注解,让Spring在Bean初始化阶段自动调用:

@PostConstruct
@Override
public void initFirebase() {
    // 初始化代码
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:20:59