• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Cannot retrieve Data from Firebase in Android app

Pooveshin

Newbie
Hi All

I am developing an Android app and have integrated Firebase. I have run into a problem, I can write to the Database successfully, however when the app tries to retrieve the data to be displayed it crashes. I have attached my code below if anyone can help? also how would i change the way data gets shown? currently the data goes into a Textview I want to implement a Listview.

public class MeetingUser {
//name and address string
Code:
    private String key;
    private String name;
    private String address;
    private String DateTime;

    public MeetingUser() {
      /*Blank default constructor essential for Firebase*/
    }
    //Getters and setters
    private String getKey ()
    {
        return key;
    }

    private void setKey (String Key)
    {
        this.key = Key;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getDateTime()
    {
        return DateTime;
    }

    public void setDateTime (String DateTime)
    {
        this.DateTime = DateTime;
    }
}

//Class to capture and display data
Code:
public class Capture_Meetings extends AppCompatActivity {

    private EditText editTextName;
    private EditText editTextAddress;
    private EditText editDateTime;
    private TextView textViewPersons;
    private Button buttonSave;

    [USER=1021285]@override[/USER]
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_capture__meetings);

        Firebase.setAndroidContext(this);

        buttonSave = (Button) findViewById(R.id.buttonSave);
        editTextName = (EditText) findViewById(R.id.editTextName);
        editTextAddress = (EditText) findViewById(R.id.editTextAddress);
        editDateTime = (EditText) findViewById(R.id.editDateTime);

        textViewPersons = (TextView) findViewById(R.id.textViewPersons);

        buttonSave.setOnClickListener(new View.OnClickListener() {
            [USER=1021285]@override[/USER]
            public void onClick(View v) {
                //Creating firebase object
                Firebase ref = new Firebase(Config.FIREBASE_URL);

                //Getting values to store
                String name = editTextName.getText().toString().trim();
                String address = editTextAddress.getText().toString().trim();
                String DateTime = editDateTime.getText().toString().trim();

                //Creating Person object
                final MeetingUser person = new MeetingUser();

                //Adding values
                person.setName(name);
                person.setAddress(address);
                person.setDateTime(DateTime);

                //Storing values to firebase
                ref.child("Person").push().setValue(person);


                //Value event listener for realtime data update
                ref.addValueEventListener(new ValueEventListener() {
                    [USER=1021285]@override[/USER]
                    public void onDataChange(DataSnapshot snapshot)
                    {
                        for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                            //Getting the data from snapshot
                            MeetingUser person = postSnapshot.getValue(MeetingUser.class);

                            //Adding it to a string
                            String string = "\n Name of School: "+person.getName()+"\n Date and Time:"+ person.getDateTime()+"\nMeeting Notes: "+person.getAddress()+"\n\n";

                            //Displaying it on textview
                            textViewPersons.setText(string);
                        }
                    }

                    [USER=1021285]@override[/USER]
                    public void onCancelled(FirebaseError firebaseError) {
                        System.out.println("The read failed: " + firebaseError.getMessage());
                    }
                });

            }
        });
    }
}

//XML layout
Code:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:eek:rientation="vertical">

    <ImageView
        android:layout_width="match_parent"
        android:src ="@drawable/saica"
        android:layout_height="120dp" />

    <TextView
        android:text="Name of school"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editTextName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:text="Date and Time"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editDateTime"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


    <TextView
        android:text="Meeting Notes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/editTextAddress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/buttonSave"
        android:text="Create"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


    <TextView
        android:text="Details"
        android:textStyle="bold"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/textViewPersons"
        android:layout_width="match_parent"
        android:layout_height="200dp" />

</LinearLayout>

11-03 12:17:00.512 6815-6815/com.example.pooveshin.saica_sgb E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.pooveshin.saica_sgb, PID: 6815
com.firebase.client.FirebaseException: Failed to bounce to type
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:185)
at com.example.pooveshin.saica_sgb.Capture_Meetings$1$1.onDataChange(Capture_Meetings.java:67)
at com.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:45)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "-KVcsDzC7qZe4Ls7Yukw" (class com.example.pooveshin.saica_sgb.MeetingUser), not marked as ignorable (4 known properties: , "name", "dateTime", "address", "key"])
at [Source: java.io.StringReader@639dfec; line: 1, column: 26] (through reference chain: com.example.pooveshin.saica_sgb.MeetingUser["-KVcsDzC7qZe4Ls7Yukw"])
at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:555)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:708)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1160)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:315)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183)
at com.example.pooveshin.saica_sgb.Capture_Meetings$1$1.onDataChange(Capture_Meetings.java:67)
at com.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:45)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
 
Last edited:
Need to see the stack trace from your Logcat view

Also, put your code in [code][/code] tags, with proper indentation. The above is difficult to read.
 
Back
Top Bottom