Sfoglia il codice sorgente

feat(firebase): 添加 Firebase 配置和初始化功能

- 添加 Firebase 服务账户配置文件 app-aitori-jp-firebase-adminsdk.json
- 创建 FireBaseConfig 配置类实现 CommandLineRunner 接口
- 实现 Firebase 应用初始化逻辑
- 配置 HTTPS 协议支持 TLSv1/TLSv1.1/TLSv1.2
- 设置 Firebase 数据库 URL 和认证凭据
ChenYu 7 mesi fa
parent
commit
7a2650c06f

+ 42 - 0
src/main/java/com/aitori/config/FireBaseConfig.java

@@ -0,0 +1,42 @@
+package com.aitori.config;
+
+import com.google.auth.oauth2.GoogleCredentials;
+import com.google.firebase.FirebaseApp;
+import com.google.firebase.FirebaseOptions;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+@Component
+@Slf4j
+@Order(1)
+public class FireBaseConfig implements CommandLineRunner {
+
+    @Override
+    public void run(String... args) throws Exception {
+        init();
+    }
+
+    private void init() throws IOException {
+        String serviceAccountKeyPath = "app-aitori-jp-firebase-adminsdk.json";
+        Resource resource = new ClassPathResource(serviceAccountKeyPath);
+        InputStream inputStream = resource.getInputStream();
+
+        //协议开放 克服握手错误
+        System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
+        log.info("协议开放成功:{}", System.getProperty("https.protocols"));
+        //firebase初始化
+        FirebaseOptions options = new FirebaseOptions.Builder()
+                .setCredentials(GoogleCredentials.fromStream(inputStream))
+                .setDatabaseUrl("https://app-aitori-jp.firebaseio.com/")//
+                .build();
+        FirebaseApp.initializeApp(options);
+        log.info("firebase初始化成功");
+    }
+}

+ 13 - 0
src/main/resources/app-aitori-jp-firebase-adminsdk.json

@@ -0,0 +1,13 @@
+{
+  "type": "service_account",
+  "project_id": "app-aitori-jp",
+  "private_key_id": "8a92ce6911d60de5a2fc42e4463802f16d3b467c",
+  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC5yN+hDj+32dDK\nmaClVl4vka95G4sOkkRn9LNFeKejn7ge/sI7O+eOU5NQ6w5cMlerbsuZWmoUoMLj\nFq4Bicz379W5D++BTN/IXcw7+AqmaoUWEpvvYQhAnbGGG/P+hQlSIsyenPvwz8Fy\nL8I3NaARendsWH6H2CaU0XX22DwYXZN5C0CRR6Mr5YPH/JZc15c7L3HsyxEy5K6m\nOQHrZyv5Q5n6yo4mhmGwffnc/1Z34zA46E5+ORhOnERx80bv/POCUk/kagKqRSSk\nj03TRTMfvzlseHe7RbjHxw5Ov+Am8gnTPgPww7m44h3LnUlLQhLJ9AqNmZOuygib\nqaQq9KH1AgMBAAECggEABREnvxzEYB9MIDp0/g1qseqU/piYklG9OZicFDtD6YA/\nZU/fvEb813vCVomAX1WkvDFgQMDEP1TsRPMCi+zD7uzpWZ41pXpKIDFut2raKKaj\nqE1QfJbkVQNlvT4PEq+76DPdDoiwaK6vnI2nwvUlv1RKCPgqDZOTDBdziVWuu5/q\nX+wQN8vhSh8fZFgd/b29pWd2pDKbE5ZHTCnm51HH3PfWk2uoiuRSBO3Rx/OJfNth\nt/VrfgR+1TE8xvJ2Ax0rQQL+/JYwGGr+bR18p0J2ZMMwSz3AQsZU/HV84hbGuucd\n+rDnEBLbXORFQhYX1gmCWRBHeUbpB3rnF0KqF/eoAQKBgQDsFrgEUjUqf1Al2gYd\nORRydPSdGjByXrD6rFR7+EQcyxannNuzXKl4kLwSDNKiL+vCxNr3iOm0TEA/ETZL\nWoQ8j/mIve+K7KQwfU3Tk3gKW9+0Szx7GzJhtMpJYEzTeNPQdeQUeD53LMNpQhxi\nCVA+UG3j9dbX+LLYMf4+XE+z0QKBgQDJdBAa9P3bAaO3yTRWlPzEFBDXFLeIVfja\n6QZ1FEQ9hKSVF46IVhjvAFp6oO1RCGo1pm0XSMpGy63oYSy4/CLZ6HL3qQLMumdW\n1qeGqf6Zp1RR9VHo6HYTPLMVXD9fQ2C3eAcwJj2Q0uIpenSt3juYhpHb5OxORjkc\nydPMDzZI5QKBgC+puobszd0BjP3HUXqu3mjpIcVh1ywP3+0Lw5avnZiui6lVKqnA\naFp15fJC8ndZ82AD/C0DUCNdTY8t+2clJBNSAc/QgL7sXY2IjqDLYe29dKFimxhD\nel1tcXV04q3C9Ahe9KgJSpsmx2DFvxMvzCp4dGcUZ8Z8aCbrmOegHVsxAoGAQ6pd\nYoCZ5/8T+750ewSOJlpLEcNepkeiT/1nctn81eEA2ydPc9HfjB/FRF1beRVnf1/I\nUsLbVo5BesVxHS1rk1/1heRaEWQnI87z9FKTNw8yTlklSyMRzgJccLdMffYGvXlu\niKi/ky6SUrZUDLaRs/i3c3HgQaZqtpXAM1GEvVUCgYAIwcMB5htPQ039dBIbIjhS\nIN6qq5AFo01ro3SmM0dTOiF9zXqewohqfevWQK45RxcD1i6U+3r5K3vibefTW8NB\nKopa9406378g7GFdPAio7Kss4LtVPql6smvLIKhR8tOr4j1083Jj1rBSsFL9H6KC\nFAh5WikowsXVcz9j0W2YwA==\n-----END PRIVATE KEY-----\n",
+  "client_email": "firebase-adminsdk-94duh@app-aitori-jp.iam.gserviceaccount.com",
+  "client_id": "113565578542331496921",
+  "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-94duh%40app-aitori-jp.iam.gserviceaccount.com",
+  "universe_domain": "googleapis.com"
+}