Java Firebase未知属性异常
我一直在尝试了解Firebase,在我的第一个示例中,有一个错误我根本不理解。如果有人能帮助我,我将非常感激 这是我的MAINACTIVITY.JAVAJava Firebase未知属性异常,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我一直在尝试了解Firebase,在我的第一个示例中,有一个错误我根本不理解。如果有人能帮助我,我将非常感激 这是我的MAINACTIVITY.JAVA package com.example.betterlaylow.firebasetestinsertretrieve; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import and
package com.example.betterlaylow.firebasetestinsertretrieve;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.firebase.client.ValueEventListener;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private EditText editTextName;
private EditText editTextAddress;
private TextView textViewPersons;
private Button buttonSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Firebase.setAndroidContext(this);
buttonSave = (Button) findViewById(R.id.buttonSave);
editTextName = (EditText) findViewById(R.id.editTextName);
editTextAddress = (EditText) findViewById(R.id.editTextAddress);
textViewPersons = (TextView) findViewById(R.id.textViewPersons);
//Click Listener for button
buttonSave.setOnClickListener(new View.OnClickListener() {
@Override
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();
//Creating Person object
Person person = new Person();
//Adding values
person.setName(name);
person.setAddress(address);
//Storing values to firebase
ref.child("Person").setValue(person);
//Value event listener for realtime data update
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
//Getting the data from snapshot
Person person = postSnapshot.getValue(Person.class);
//Adding it to a string
String string = "Name: "+person.getName()+"\nAddress: "+person.getAddress()+"\n\n";
//Displaying it on textview
textViewPersons.setText(string);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
}
});
}
}
这是我的PERSON.JAVA
package com.example.betterlaylow.firebasetestinsertretrieve;
/**
* Created by betterlaylow on 7/26/16.
*/
public class Person {
//name and address string
private String name;
private String address;
public Person() {
/*Blank default constructor essential for Firebase*/
}
//Getters and setters
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;
}
}
这是我的CONFIG.JAVA
package com.example.betterlaylow.firebasetestinsertretrieve;
/**
* Created by betterlaylow on 7/26/16.
*/
public class Config {
public static final String FIREBASE_URL = "https://simplifiedcoding.firebaseio.com/";
}
这是安卓显示器的ID
07-26 21:07:06.917 6408-6408/com.example.betterlaylow.firebasetestinsertretrieve E/AndroidRuntime:致命异常:main
进程:com.example.betterlaylow.firebasetestinsertretrieve,PID:6408
com.firebase.client.FirebaseException:无法跳转到类型
位于com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:185)
在com.example.betterlaylow.firebasestinsertretrieve.MainActivity$1$1.onDataChange(MainActivity.java:66)上
位于com.firebase.client.core.ValueEventRegistration.firevent(ValueEventRegistration.java:45)
位于com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
位于com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
位于android.os.Handler.handleCallback(Handler.java:739)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
原因:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:未识别字段“msg”(class com.example.betterlaylow.firebasetestinsertretrieve.Person),未标记为可忽略(2个已知属性:,“address”,“name”])
在[来源:java.io。StringReader@f02156a;行:1,列:9](通过引用链:com.example.betterlaylow.firebasetestinsertretrieve.Person[“msg”])
位于com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:555)
位于com.fasterxml.jackson.databind.desr.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:708)
位于com.fasterxml.jackson.databind.desr.beandserializerbase.handleUnknownProperty(beandserializerbase.java:1160)
在com.fasterxml.jackson.databind.deser.beanderiserializer.deserializeFromObject(beanderiserializer.java:315)上
在com.fasterxml.jackson.databind.deser.BeandSerializer.deserialize(BeandSerializer.java:121)上
位于com.fasterxml.jackson.databind.ObjectMapper.\u readMapAndClose(ObjectMapper.java:2888)
位于com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
位于com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183)
在com.example.betterlaylow.firebasestinsertretrieve.MainActivity$1$1.onDataChange(MainActivity.java:66)上
位于com.firebase.client.core.ValueEventRegistration.firevent(ValueEventRegistration.java:45)
位于com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
位于com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
位于android.os.Handler.handleCallback(Handler.java:739)
//Storing values to firebase
ref.child("Person").push().setValue(person);
public void onDataChange(DataSnapshot snapshot) {
Person person = snapshot.getValue(Person.class);
//Adding it to a string
String string = "Name: "+person.getName()+"\nAddress: "+person.getAddress()+"\n\n";
//Displaying it on textview
textViewPersons.setText(string);
}
@IgnoreExtraProperties
public class Person {
private String name;
private String address;
public Person() {
/*Blank default constructor essential for Firebase*/
}
//Getters and setters
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;
}
}