【发布时间】:2020-08-26 22:32:51
【问题描述】:
我正在通过我的spring boot app 连接到firestore。该应用程序已初始化并在本地完全正常工作。但是,一旦我将它部署到 Google Cloud,我就会收到以下错误消息:
java.lang.IllegalStateException:
名称为 [DEFAULT] 的 FirebaseApp 不存在。在 com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:164) ~[firebase-admin-6.8.1.jar!/:na] 在 com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:135) ~[firebase-admin-6.8.1.jar!/:na] 在 com.google.firebase.cloud.FirestoreClient.getFirestore(FirestoreClient.java:64) ~[firebase-admin-6.8.1.jar!/:na] 在 com.augiemarketplace.augiemarketplaceapi.service.AugieMarketService.getListOfAllItems(AugieMarketService.java:112) ~[classes!/:0.0.1-SNAPSHOT]
我用来初始化spring app的代码:
try {
if (!FirebaseApp.getApps().isEmpty()) {
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
FileInputStream serviceAccount =
new FileInputStream("src/main/resources/firebase.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://augiemarketplace.firebaseio.com")
.build();
if (FirebaseApp.getApps().isEmpty()) {
FirebaseApp.initializeApp(options);
}
} catch (Exception e) {
e.printStackTrace();
}
我用来调用Firestore的代码行:
Firestore dbFireStore = FirestoreClient.getFirestore();
【问题讨论】:
-
从错误信息看来,第一块代码没有被调用,或者在第二块代码运行之前没有正确初始化
FirebaseApp实例。 -
@FrankvanPuffelen 是的,很难调试它,因为该代码块在我的配置文件中,而且它在我的本地运行良好......有什么建议吗?
标签: java firebase spring-boot google-cloud-platform google-cloud-firestore