Ganesh Hegde
Ganesh Hegde

Reputation: 11

I am new to firebase. I am not able to retrieve data from firebase

This is how my firebase database looks like.

   mDatabase.child("KhCm8DZpg72BBXCISCC").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                Product product = dataSnapshot.getValue(Product.class);
                     s="Product Name: "+product.getName();
                          textView.setText(s);    
    }

            @Override
            public void onCancelled(DatabaseError error) {

            }
        });

This is the code im using to retrieve

04-09 09:57:42.501 9450-9450/? E/FirebaseApp: Firebase API initialization failure. java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.google.firebase.FirebaseApp.zza(Unknown Source) at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) at android.content.ContentProvider.attachInfo(ContentProvider.java:1748) at android.content.ContentProvider.attachInfo(ContentProvider.java:1723) at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) at android.app.ActivityThread.installProvider(ActivityThread.java:5153) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688) at android.app.ActivityThread.-wrap1(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzaa; or its super classes (declaration of 'com.google.android.gms.common.internal.zzaa' appears in /data/app/com.example.android.supermarket-1/split_lib_dependencies_apk.apk:classes15.dex) at com.google.android.gms.measurement.internal.zzx.zzdq(Unknown Source) at com.google.android.gms.measurement.AppMeasurement.getInstance(Unknown Source) at java.lang.reflect.Method.invoke(Native Method)  at com.google.firebase.FirebaseApp.zza(Unknown Source)  at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)  at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)  at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)  at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)  at android.content.ContentProvider.attachInfo(ContentProvider.java:1748)  at android.content.ContentProvider.attachInfo(ContentProvider.java:1723)  at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)  at android.app.ActivityThread.installProvider(ActivityThread.java:5153)  at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)  at android.app.ActivityThread.-wrap1(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  This error im getting`apply plugin: 'com.android.application'

        android {
                 compileSdkVersion 23
                 buildToolsVersion "25.0.2"
                defaultConfig {
               applicationId "com.example.android.supermarket"
                minSdkVersion 19
                targetSdkVersion 23
            versionCode 1
                versionName "1.0"
                 testInstrumentationRunner                                             "android.support.test.runner.AndroidJUnitRunner"
              }
            buildTypes {
             release {
                     minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'),        'proguard-rules.pro'
    }
}
           }

                 dependencies {
         compile fileTree(dir: 'libs', include: ['*.jar'])
             androidTestCompile('com.android.support.test.espresso:espresso- core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

compile 'com.android.support:design:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
testCompile 'junit:junit:4.12'
        }

apply plugin: 'com.google.gms.google-services'

Upvotes: 0

Views: 332

Answers (2)

ColdSpike
ColdSpike

Reputation: 196

mDatabase.child("products").addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    //this loop will iterate through all the available children
                    for(DataSnapshot ds:dataSnpshot.getChildren())
                    {
                         Product product = ds.getValue(Product.class);
                         s="Product Name: "+product.getName();
                         textView.setText(s); //this would be overwritten
                    }    
        }

                @Override
                public void onCancelled(DatabaseError error) {

                }
            });

Now this would overwrite the text in the TextView. You can either store all the product names in an array and then use it later on or you can create textviews programmatically or you can use RecyclerView to popullate your data.

Upvotes: 0

Elsunhoty
Elsunhoty

Reputation: 1627

 mDatabase.child("products").child("KhCm8DZpg72BBXCISCC").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                Product product = dataSnapshot.getValue(Product.class);
                     s="Product Name: "+product.getName();
                          textView.setText(s);    
    }

            @Override
            public void onCancelled(DatabaseError error) {

            }
        });

Upvotes: 0

Related Questions