MainActivity в проекте в Android Studio не видит firebase. Выдает ошибку "Unresolved reference 'firebase'."

В MainActivity.kt выдается следующий список ошибок:

  • Unresolved reference 'firebase'. line 12-13
  • Unresolved reference 'DatabaseReference'. line 21
  • Unresolved reference 'FirebaseDatabase'. line 38
  • Unresolved reference 'push'. line 73
  • Unresolved reference 'addOnSuccessListener'. line 74
  • cannot infer type для этого параметра. Specify it explicitly. line 77
  • Unresolved reference 'message'. line 79

Все dependencies в build.gradle.kts подключены. Я уже просто не знаю, что может быть причиной. И кэш очищал уже но ничего не помогает

MainActivity.kt:

package dev.ivankov.lab3

import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.FirebaseDatabase
import kotlin.math.pow
import kotlin.math.sqrt

class MainActivity : AppCompatActivity(), SensorEventListener {

    private lateinit var sensorManager: SensorManager
    private var magneticField: Sensor? = null
    private lateinit var ref: DatabaseReference

    private lateinit var magneticText: TextView
    private lateinit var statusText: TextView

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

        magneticText = findViewById(R.id.magneticText)
        statusText = findViewById(R.id.statusText)

        // Підключення до сенсора
        sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
        magneticField = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD)

        // Firebase Database
        ref = FirebaseDatabase.getInstance().getReference("magnetic_data")
    }

    override fun onResume() {
        super.onResume()
        magneticField?.also {
            sensorManager.registerListener(this, it, SensorManager.SENSOR_DELAY_NORMAL)
        }
    }

    override fun onPause() {
        super.onPause()
        sensorManager.unregisterListener(this)
    }

    override fun onSensorChanged(event: SensorEvent?) {
        event?.let {
            val magnitude = sqrt(
                it.values[0].pow(2) + it.values[1].pow(2) + it.values[2].pow(2)
            )

            magneticText.text = "Magnetic field: %.2f µT".format(magnitude)

            if (magnitude > 70) { // 70 — порогове значення аномалії
                sendToFirebase(magnitude)
            }
        }
    }

    private fun sendToFirebase(value: Float) {
        val data: Map<String, Any> = mapOf(
            "value" to value,
            "timestamp" to System.currentTimeMillis()
        )

        ref.push().setValue(data)
            .addOnSuccessListener {
                statusText.text = "Data sent: $value µT"
            }
            .addOnFailureListener { e ->
                statusText.text = "Error sending data"
                Toast.makeText(this, "Error: ${e.message}", Toast.LENGTH_SHORT).show()
            }
    }

    override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}

build.gradle.kts(app):

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.gms.google-services")
}

android {
    namespace = "dev.ivankov.lab3"
    compileSdk = 36

    defaultConfig {
        applicationId = "dev.ivankov.lab3"
        minSdk = 24
        targetSdk = 36
        versionCode = 1
        versionName = "1.0"
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }

    kotlinOptions {
        jvmTarget = "11"
    }
}

dependencies {
    implementation("androidx.core:core-ktx:1.12.0")
    implementation("androidx.appcompat:appcompat:1.7.0")
    implementation("com.google.android.material:material:1.11.0")

    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.1.7")
    androidTestImplementation("androidx.test.espresso:espresso-core:3.6.0")

    // Firebase
    implementation(platform("com.google.firebase:firebase-bom:34.4.0"))
    implementation("com.google.firebase:firebase-database-ktx")
}

build.gradle(project):

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:8.13.0")
        classpath("com.google.gms:google-services:4.4.4")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0")
    }
}

settings.graddle.kts:

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.name = "Lab3"
include(":app")

Ответы (1 шт):

Автор решения: DedMoroz

Ошибка исчезает если заменить зависимость на:

implementation(libs.firebase.database)

[versions]
firebaseDatabase = "22.0.1"

[libraries]
firebase-database = { module = "com.google.firebase:firebase-database", version.ref = "firebaseDatabase" }

или

implementation(libs.firebase.database.ktx)

[versions]
firebaseDatabaseKtx = "21.0.0"

[libraries]
firebase-database-ktx = { module = "com.google.firebase:firebase-database-ktx", version.ref = "firebaseDatabaseKtx" }
→ Ссылка