I am facing this issue and seen some answers on this site but did not get any proper solution. I have used previous version of Firebase which works fine but when I try to upgrade using Upgradation and update Firebase class to DatabaseReference it shows error and not working.
My Module app is given below:
plugins { id 'com.android.application' } android { compileSdkVersion 30 buildToolsVersion '30.0.2' defaultConfig { applicationId "com.example.lasthope" minSdkVersion 28 targetSdkVersion 30 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 } } dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.1' implementation 'org.jetbrains:annotations:15.0' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' // implementation 'com.google.firebase:firebase-analytics:17.2.1' implementation 'com.google.firebase:firebase-database:19.2.0' }
and Project gradle is
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:4.2.2" classpath 'com.google.gms:google-services:4.3.10' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() mavenCentral() jcenter() // Warning: this repository is going to shut down soon } } task clean(type: Delete) { delete rootProject.buildDir }
Below is my Activity
import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import com.google.firebase.FirebaseApp; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private ListView listview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FirebaseApp.initializeApp(this); setContentView(R.layout.activity_main); listview=findViewById(R.id.listview); ArrayList<String>list = new ArrayList<>(); ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.activity_main,list); listview.setAdapter(adapter); DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("items"); reference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull @NotNull DataSnapshot dataSnapshot) { list.clear(); for (DataSnapshot snapshot : dataSnapshot.getChildren()){ list.add(snapshot.getValue().toString()); } adapter.notifyDataSetChanged(); } @Override public void onCancelled(@NonNull @NotNull DatabaseError databaseError) { } }); } }
Advertisement
Answer
To sllve this, please chenche the folllwing lines of code:
implementation 'com.google.firebase:firebase-analytics:17.2.1' implementation 'com.google.firebase:firebase-database:19.2.0'
To:
implementation platform("com.google.firebase:firebase-bom:28.4.1") implementation "com.google.firebase:firebase-analytics" implementation "com.google.firebase:firebase-database"
There is no need to specify any versions for the Analytics, nor for the Realtime Database. More information:
Besides that, there is no need to call initializeApp()
. If you perform a standard integration, Firebase will be initialized automatically at the app start. Please see more about this in the API docs for FirebaseApp.
Edit:
Don’t also forget to add:
plugins { id 'com.android.application' id 'com.google.gms.google-services' //Newly added }
At the top of your Gradle file.