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

Android Things通过服务账户连接Firebase数据库遇Gradle错误求助

解决Android Things通过服务账户连接Firebase数据库的问题,附Gradle错误修复

先搞定你遇到的Gradle版本错误

你碰到的Error:(56, 0) Version: 5.8.0 is lower than the minimum version (9.0.0) required for google-services plugin,本质是把Firebase Admin SDK和Android的google-services插件混在一起用了——Admin SDK是给后端/非Android环境设计的,完全不需要依赖Android的google-services插件来配置,这才导致了版本冲突。

修复这个错误的核心操作:

  • 移除模块级build.gradle里的apply plugin: 'com.google.gms.google-services'(如果之前加了的话)
  • 放弃旧版5.8.0的Admin SDK,直接引入最新稳定版,同时确保Gradle配置适配Java 8(Admin SDK的要求)

完整配置步骤(Android Things + Firebase Admin SDK)

1. 获取Firebase服务账户密钥

  • 打开Firebase控制台进入你的项目
  • 点击左侧「设置」→「服务账户」
  • 切换到「Java」选项卡,点击「生成新的私钥」,下载JSON格式的密钥文件

2. 配置Android Things项目的Gradle

项目根目录build.gradle

确保Gradle插件和仓库配置正确,选和你项目兼容的版本即可:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0' // 建议用支持Java 8的版本
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

模块级build.gradle

启用Java 8支持,并引入最新版Admin SDK:

android {
    compileSdk 33 // 匹配你的Android Things SDK版本

    defaultConfig {
        applicationId "com.your.package.name"
        minSdk 24 // Android Things最低要求SDK 24
        targetSdk 33
        versionCode 1
        versionName "1.0"
    }

    // 必须启用Java 8,否则Admin SDK编译报错
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation 'com.google.firebase:firebase-admin:22.0.0' // 用最新稳定版
    implementation 'com.google.android.things:androidthings:1.0.1' // Android Things核心库
}

划重点:千万别加apply plugin: 'com.google.gms.google-services',Admin SDK完全不需要这个插件。

3. 在Android Things应用中初始化Admin SDK

  • 把下载的服务账户密钥JSON文件放到app/src/main/res/raw目录(没有的话新建一个),建议重命名为service_account.json方便引用
  • 在你的Application类或者启动Activity里初始化SDK:
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.database.FirebaseDatabase;

import java.io.InputStream;

public class ThingsApp extends android.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();
        try {
            // 读取服务账户密钥
            InputStream serviceAccount = getResources().openRawResource(R.raw.service_account);

            FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(com.google.firebase.auth.FirebaseCredentials.fromCertificate(serviceAccount))
                    .setDatabaseUrl("https://your-firebase-project.firebaseio.com/") // 替换成你的数据库URL
                    .build();

            // 初始化Firebase App
            FirebaseApp.initializeApp(options);
            // 获取数据库实例
            FirebaseDatabase database = FirebaseDatabase.getInstance();
            // 测试写入数据
            database.getReference("test").setValue("Hello from Android Things!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4. 关键注意事项

  • 确保Android Things设备能正常访问互联网,网络权限要在Manifest里配置好
  • 服务账户的权限要到位:在Firebase控制台的「服务账户」页面,确保该账户拥有「Firebase Admin SDK管理员」或对应的数据库读写权限
  • 别在普通Android客户端里用Admin SDK!只有Android Things作为服务端角色时才用这个方案,普通客户端用常规的Firebase Auth和数据库依赖即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:49:57