Java Firebase基于Spring启动默认应用程序
我正在创建一个JHipster应用程序Springboot+Angular,我需要集成Firebase 我已经按照firebase文档中的说明进行了操作,当我离线启动服务器时,它可以完美地工作 但当我在控制台中使用jhipster AWS将服务器部署到AWS时,当我尝试调用使用firebase SDK的函数时,它表示尝试登录firebase失败。原因:FirebaseApp名称[默认值]已存在 这种行为只有在我部署应用程序时才会发生,因为如果我从本地主机调用它,它就可以正常工作 我的pom.xml上有这个Java Firebase基于Spring启动默认应用程序,java,firebase,spring-boot,jhipster,Java,Firebase,Spring Boot,Jhipster,我正在创建一个JHipster应用程序Springboot+Angular,我需要集成Firebase 我已经按照firebase文档中的说明进行了操作,当我离线启动服务器时,它可以完美地工作 但当我在控制台中使用jhipster AWS将服务器部署到AWS时,当我尝试调用使用firebase SDK的函数时,它表示尝试登录firebase失败。原因:FirebaseApp名称[默认值]已存在 这种行为只有在我部署应用程序时才会发生,因为如果我从本地主机调用它,它就可以正常工作 我的pom.xm
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>6.3.0</version>
</dependency>
<dependency>
<groupId>com.google.gms</groupId>
<artifactId>google-services</artifactId>
<version>3.1.1</version>
</dependency>
我修好了
结果表明FirebaseApp.InitializeAppions;当环境部署到AWS Elastic Beanstalk时,函数在api上执行一次
我所做的是创建一个名为FirebaseUtils的类,它有一个InitiateFileBase过程,用于设置FirebaseApp
在每次调用需要访问firebase的API时调用InitiateFileBase后,FirebaseApp将使用另一个作用域中的新选项配置创建,我可以访问firebase。您是否也设法从前端执行了身份验证,例如在React JS中?使用谷歌或Facebook登录怎么样?能有一些样品就好了
try{
InputStream serviceAccount = new ByteArrayInputStream(getFirebaseJson().getBytes(StandardCharsets.UTF_8));
//FileInputStream serviceAccount = new FileInputStream("firebaseAuth.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://seeu-soon.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
FirebaseDatabase.getInstance(FirebaseApp.getInstance()).setPersistenceEnabled(true);
}catch(Exception e){
log.debug("Trying to login to firebase failed. Reason: " + e.getMessage());
}