0
votes

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'

2
share your product class. Also if you are getting an exception, please share the logcat output - Kushan
Post your error/excepton, specify the problem in more detail, make a more descriptive title. - Vsevolod Golovanov
The exception says 'initialization failure', did you initialize Firebase before using it? - Merve Sahin
@MerveSahin Yes. I have - Ganesh Hegde

2 Answers

0
votes
 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) {

            }
        });
0
votes
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.