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

Firebase实时数据库连接异常:无法创建节点问题排查求助

无法在Firebase实时数据库创建节点的问题排查

我正在测试Firebase实时数据库,但无法在数据库中创建任何节点。我哪里操作出错了?我怀疑是Android Studio与Firebase的连接问题,但看起来所有连接配置都正常。恳请您的帮助。

相关代码

MainActivity.kt

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button:Button = findViewById(R.id.btnSubmit)
        val etValue:EditText = findViewById(R.id.etValue)

        val rootRef: DatabaseReference = FirebaseDatabase.getInstance().reference

        val demoRef: DatabaseReference = rootRef.child("demo")

        button.setOnClickListener {
            val value: String = etValue.text.toString()

            demoRef.setValue(value)
        }
    }
}

Module级Build.gradle

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'com.google.gms.google-services'
}

android {
    compileSdk 32

    defaultConfig {
        applicationId "com.firebaseexample.firebaseexample"
        minSdk 21
        targetSdk 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildscript {
        repositories {
            // Make sure that you have the following two repositories
            google()  // Google's Maven repository
            mavenCentral()  // Maven Central repository

        }
        dependencies {

            // Add the dependency for the Google services Gradle plugin
            classpath 'com.google.gms:google-services:4.3.13'


        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.2'
    implementation 'com.google.android.material:material:1.6.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

    //Firebase
    implementation platform('com.google.firebase:firebase-bom:30.3.2')
    implementation 'com.google.firebase:firebase-analytics-ktx'
    implementation 'com.google.firebase:firebase-database-ktx:20.0.5'
}

排查与解决方案

  • 检查数据库规则权限
    默认Firebase实时数据库规则限制仅认证用户读写,未配置认证时写入会失败。可临时修改规则用于测试:

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

    注意:上线前必须替换为严格权限规则,防止数据泄露。

  • 添加写入回调捕获错误
    原代码未处理写入结果,无法定位问题。修改代码添加回调:

    demoRef.setValue(value)
        .addOnSuccessListener {
            Toast.makeText(this, "写入成功", Toast.LENGTH_SHORT).show()
        }
        .addOnFailureListener { e ->
            Log.e("FirebaseError", "写入失败: ${e.message}")
            Toast.makeText(this, "写入失败: ${e.message}", Toast.LENGTH_SHORT).show()
        }
    

    通过Logcat查看错误信息,明确是网络、权限还是其他问题。

  • 修正Build.gradle结构
    你的Module级build.gradle将buildscript块放在了android内部,这是错误的。正确结构应将buildscript移至文件最外层:

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            classpath 'com.google.gms:google-services:4.3.13'
        }
    }
    
    plugins {
        id 'com.android.application'
        id 'org.jetbrains.kotlin.android'
        id 'com.google.gms.google-services'
    }
    
    android {
        // 原有android配置内容
    }
    
    dependencies {
        // 原有依赖内容
    }
    

    错误的结构会导致Gradle无法正确加载Google服务插件,影响Firebase连接。

  • 验证google-services.json文件
    确认该文件已放置在app目录下,且文件中的项目ID、数据库URL等信息与Firebase控制台完全一致。

  • 检查网络与项目关联

    • 确保测试设备/模拟器网络正常,Firebase操作需要联网。
    • 在Android Studio的Firebase工具窗口中,确认项目已正确关联到目标Firebase项目,未选错项目。

内容的提问来源于stack exchange,提问作者gabriel visiedo pelaez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 06:36:27