You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java桌面应用连接Firebase:除REST API外的基础方案咨询

最简单的Java桌面应用连接Firebase方案

因为你的项目是课程结课作业,不要求安全,下面两个方案都是极简的实现方式:

方案1:Firebase Admin SDK(最省心的代码实现)

虽然官方标注Admin SDK为服务端工具,但完全可以在Java桌面程序中使用,步骤超简单:

  1. 登录Firebase控制台,进入项目设置→服务账号,点击「生成新的私钥」,下载JSON格式的密钥文件。
  2. 若使用Maven,将以下依赖添加到pom.xml:
<dependency>
    <groupId>com.google.firebase</groupId>
    <artifactId>firebase-admin</artifactId>
    <version>9.2.0</version>
</dependency>
  1. 初始化SDK并完成基础读写的示例代码:
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.io.FileInputStream;

public class FirebaseTest {
    public static void main(String[] args) {
        try {
            // 加载下载的密钥文件
            FileInputStream serviceAccount = new FileInputStream("你的密钥文件路径.json");

            FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(com.google.firebase.auth.FirebaseCredentials.fromCertificate(serviceAccount))
                .setDatabaseUrl("你的Firebase实时数据库URL")
                .build();

            FirebaseApp.initializeApp(options);

            // 写入数据到数据库
            DatabaseReference ref = FirebaseDatabase.getInstance().getReference("test");
            ref.child("message").setValue("Hello from Java Desktop!");

            // 读取数据
            ref.child("message").addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
                @Override
                public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
                    String message = dataSnapshot.getValue(String.class);
                    System.out.println("读取到的数据:" + message);
                }

                @Override
                public void onCancelled(com.google.firebase.database.DatabaseError databaseError) {
                    System.out.println("读取失败");
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

方案2:直接用HTTP请求(零依赖,最轻量化)

如果不想引入任何SDK依赖,直接用Java自带的HttpClient发请求即可,前提是先把Firebase实时数据库的安全规则改为完全开放(控制台→实时数据库→规则,替换为以下内容后发布):

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

基础读写的示例代码:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class FirebaseHttpTest {
    private static final String DB_URL = "你的Firebase实时数据库URL/test/message.json";

    public static void main(String[] args) {
        // 写入数据
        try {
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(DB_URL))
                .POST(HttpRequest.BodyPublishers.ofString("\"Hello from HTTP!\""))
                .build();
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println("写入响应:" + response.body());
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 读取数据
        try {
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(DB_URL))
                .GET()
                .build();
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            System.out.println("读取到的数据:" + response.body());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这个方案无需安装任何SDK,仅靠原生HTTP请求就能完成操作,完全满足课程项目的需求。

内容的提问来源于stack exchange,提问作者yvksk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 15:42:33