Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created November 26, 2025 14:10
Show Gist options
  • Select an option

  • Save sunmeat/d2bfcba701befc131790303c5daec268 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/d2bfcba701befc131790303c5daec268 to your computer and use it in GitHub Desktop.
firebase + spring boot java example
build.gradle:
plugins {
id 'java'
id 'org.springframework.boot' version '4.0.0-SNAPSHOT'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'site.sunmeat'
version = '0.0.1-SNAPSHOT'
description = 'Demo project for Spring Boot'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
}
repositories {
mavenCentral()
maven { url = 'https://repo.spring.io/snapshot' }
google() // !!!
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'com.google.firebase:firebase-admin:+' // !!!
}
tasks.named('test') {
useJUnitPlatform()
}
==================================================================================================================
HibernateApplication.java:
package site.sunmeat.hibernate;
import java.awt.Desktop;
import java.io.*;
import java.net.URI;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.annotation.Bean;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.*;
@SpringBootApplication
public class HibernateApplication {
public static void main(String[] args) {
SpringApplication.run(HibernateApplication.class, args);
}
@Bean
public FirebaseApp initializeFirebase() throws IOException {
InputStream serviceAccount = getClass()
.getClassLoader()
.getResourceAsStream("firebase-service-account.json");
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.build();
if (FirebaseApp.getApps().isEmpty()) {
FirebaseApp.initializeApp(options);
}
return FirebaseApp.getInstance();
}
}
@Component
class BrowserLauncher {
@EventListener(ApplicationReadyEvent.class)
public void launchBrowser() {
System.setProperty("java.awt.headless", "false");
Desktop desktop = Desktop.getDesktop();
try {
desktop.browse(new URI("http://localhost:8080"));
} catch (Exception e) { }
}
}
==================================================================================================================
Де взяти firebase-service-account.json?
https://console.firebase.google.com
Оберіть свій проєкт → ⚙️ Project settings → вкладка Service accounts
Натисніть Generate new private key → завантажте JSON
Покладіть файл у src/main/resources/firebase-service-account.json
Все! Тепер у вашому Spring Boot + Gradle проєкті в Eclipse повноцінно працює Firebase Admin SDK!
src / main / resources / firebase-service-account.json:
{
"type": "service_account",
"project_id": "site-sunmeat-student",
"private_key_id": "86e66c04ab............353a83d7637d733",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBAD.............kngIT8J8SibqM7cPisxtHmUDR8nUz34TDLr8Z8KzYSjaGk1JmV7\nVUO7HDCdwAYCU816i9+zYDz8M3Wgq9Y3G4IMxFunYf1xI58GEaXqag1qOOfCDrvD\n7xcGZXC82jfhd8CUvUujn7zXC0AgR7PtWAKX1msNiUi+5hSGTEtXsLa4/v5D8AqQ\nLfSJqm1fH0mj0S5CjTeAqlz0OWB9FWx9AgVQQew1mVDbh6Qk470NY7N7zf0E9JHG\ntXmPt493wajIsSmM5A3jS6x5XX6s8CpqAYZMCYYXj44hO2qyRt3BKGVRuj8nIt7n\noi/UdpmNAgMBAAECggEAFH9fppwNZB9KH3A99ahUvGT0ZjA+HhOTayPofm9hcOoo\nFMxvfwXyXh7me5bzYyQO+nvbZEQYHFZ74YFY77W9MBoR7h7RMCo18cFxZLqBjWnp\nGxPaXZr8qkLolx2aNIVXdPtSmLbU/b8kLGJ8XVqZsn53OATMDd78VU4M/9TFJpZH\nW2om+hGxu8OpjedeM8T6oPur8GEmibuMeZtrS1xD5I1DO5O510bNNaopwYrEtO2V\nHV6OTs3d8rns/4bS2N37ej67JOZbXoITjMXTr/gs+tg2SwUXsNYrXH+4DFAAJ9hZ\nqJsl7x8BPkEUI6CMUaf21nZX0XSxN2mDBYYJ9wo+AQKBgQD8EC9gw//vkddYzKgm\n8aSbucviBJwz8lZtnxEa6Ia8A6xI8fYkHGq5dzQM+Uqk3UVcUi1K4zvs/B+tE8j5\n0QSQOBednnZ3QHK7/tw7t6vfRbLcygkdwsLNMZIAe1rDZNJmi4AeyBOKdDeg73th\nn1lB4WdmloTs969ydFjSagVMQQKBgQDrJeUE1D/bKkVs68JhOGLs3Fu+urEGBZ3t\njBOLaNu3rMKyphOhchXwpa8rBLRkRlGxnUzBmhvv1/gyJPCYhARmRVwVtFRsDM39\nAy1RtUhyjiIpIKh0t22ThveB/GuL5pUu3mGzTnFVgS2jvjTf8UtNwg0jc0QHQqf/\nr7Aa61wqTQKBgQCuXiPoNK4f9CucajcIebD9aRH5UGceKE5RlvAmRSSve3r7GybC\n5EWP9z4ym2FfmxIYQ2DBpWAXGHJxMHafGlCl06fCiZQ5+oNkOXHwfaaP1Y9d3QVh\naRGJEPmHC85FzMEf3vDKWm3qIWs6EXCwn6MHR/5XoVhi9RSRgJrRNDZmAQKBgQDL\n3wr0aOEEL14J1U2t5KlAGr0gW9RnGC+YaL35PGxijtIu+XZDnxoOjleUwHt2BNGH\nYI3PvMFD7McvEn/We38k/DWeS751/5QILNz53mZ1i21qovnqV64VHgsxE5xaqwvk\nmsGyJ+xy6ZCcSqilEBrty7SAa8srUEs/jx7r9+rscQKBgQD0kKSVfzAWCgOr17GK\npFsfM+xyPJlY6OKv9CPx5Hp7W5KXa5ijb/+iQGKrnxRt/VRJJr+8WId8wYkmFQ6y\nGzZVljO7z/MMfKum0lmw9CZG4ESZR3p8B5X2ZZEN/BaDyJGD3YRyQBI9BaCPKh0v\nEI29LMW4E028k699U2HvvYnL9Q==\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-fbsvc@site-sunmeat-student.iam.gserviceaccount.com",
"client_id": "11345.......6039402",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-fbsvc%40site-sunmeat-student.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment