maven - AWS Elastic Beantalk 上的 Firebase Admin SDK 文件
问题描述
我最近将一个 Spring Boot 应用程序部署到 Elastic Beanstalk。Spring 开始时没有错误。
我们正在使用 Firebase 进行用户身份验证。在本地机器上,甚至在其他外部主机上,Firebase 操作都运行良好,但在 EBS 上却不行。
如果我阅读日志:
java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:164) ~[firebase-admin-6.3.0.jar!/:na]
at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:135) ~[firebase-admin-6.3.0.jar!/:na]
at com.google.firebase.auth.FirebaseAuth.getInstance(FirebaseAuth.java:100) ~[firebase-admin-6.3.0.jar!/:na]
at com.bodymate.springend.mvc.service.FirebaseService.validateToken(FirebaseService.java:15) ~[classes!/:1.0-SNAPSHOT]
at com.bodymate.springend.mvc.controller.UserController.register(UserController.java:66) ~[classes!/:1.0-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]...
这是我的火力基地配置:
@Configuration
public class FirebaseConfig {
@PostConstruct
public void init() {
FirebaseOptions options;
try {
FileInputStream serviceAccount = new FileInputStream("src/main/resources/google-services.json");
options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.build();
} catch (java.io.IOException e) {
e.printStackTrace();
return;
}
FirebaseApp.initializeApp(options);
}
}
它失控的地方:
@Service
public class FirebaseService {
public FirebaseToken validateToken(String token) throws InterruptedException, ExecutionException, InvalidFirebaseTokenException {
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(token).get();
if( decodedToken != null && decodedToken.getUid() != null && !decodedToken.getUid().isEmpty()){
return decodedToken;
}else{
throw new InvalidFirebaseTokenException();
}
}
}
有人知道这里出了什么问题吗?
编辑
我正在使用mvn clean install
为 EBS 构建我的 .jar 文件。此版本是否可能不包含“google-services.json”?
解决方案
推荐阅读
- angular - Firebase Firestore 如何查询子集合
- android - android RecyclerView 崩溃
- wordpress - woocommerce 产品变体,将下拉列表移至变体名称下方
- javascript - 使用 React JS 在所有段落中添加 SPAN 元素
- vue.js - Vuepress 链接和脚本标签在开发模式下不起作用
- python - 使用 SQL Server 2017 机器学习服务使用 Python 构建预测模型
- javascript - 如何使用将 Observable 映射到值是 observable 的对象的函数来映射 Observable?
- ssl - 在 Go 中手动验证 PEM 证书?
- html - HTML 内容可编辑,带有展开和居中的文本
- flutter - Flutter-向下拖动以关闭