Home > database >  Having trouble with connecting firebase realtime database to my app
Having trouble with connecting firebase realtime database to my app

Time:08-25

I'm trying to connect firebase realtime database to my app. I watched many youtube about this and tried the same way of videos but it doesn't work for me. Below is the step I followed.

Make empty project >> add 'android:exported = "true"' on manifest file (without this my app gets an error while building) >> go tools and select firebase >> select Realtime Database >> click 'get started with realtime database [KOTLIN]' >> Following the guideline, I've connected my app to Firebase and Added the Realtime Database to my app like below image image

After that, at firebase console, the firebase project showed that my app is connected and then I created a realtime database. Below is how it looks. image

The security rules are test mode. And then I tried to insert a data to the database. Below is the code.

val testData = 110
private lateinit var database : DatabaseReference

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

    val btn = findViewById<Button>(R.id.btn1)

    btn.setOnClickListener {
        database = FirebaseDatabase.getInstance().getReference("testing")

        database.setValue(testData).addOnSuccessListener {
            Toast.makeText(this,"success",Toast.LENGTH_SHORT).show()
        }.addOnFailureListener{
            Toast.makeText(this,"Fail",Toast.LENGTH_SHORT).show()
        }
    }
}

My purpose was simply saving the value of testData on the database and toasting a message when I press the button (btn). But if I do it, Nothing happens to my database and also the app doesn't toast any message. What can I do for it?

-project level gradle file

buildscript {
    ext.kotlin_version = "1.5.31"
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.2.1"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.13'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
     }
}
allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

-app level gradle file

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

}

android { compileSdkVersion 31 buildToolsVersion "30.0.3"

defaultConfig {
    applicationId "com.lotterynumber.firebase"
    minSdkVersion 16
    targetSdkVersion 31
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

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 "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'com.google.firebase:firebase-database-ktx:20.0.5'
testImplementation 'junit:junit:4. '
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

}

*When I Debug app, there is an warning that says 'w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:'. Could this be the cause of the problem?

CodePudding user response:

If none of the onSuccess() or onFailure() methods are triggered, and your database location is us-central1, then most likely the reason is the lack of an internet connection. Establish a connection on your emulator and it will work perfectly fine.

CodePudding user response:

 btn.setOnClickListener {
    database = FirebaseDatabase.getInstance().reference.child("testing")
     .
     .
     .}

I think it will solve your problem

  • Related