0
JSON FIREBASEデータを入力するバウンスに失敗しました:ここ は、このクラスが唯一のログイン認証情報はfirebaseからデータを取得:FirebaseExceptionを:
ですfirebaseデータベース{
"login" : {
"9847002233" : {
"name" : "Saj",
"number" : "9847002233",
"password" : "123456"
},
"9847123123" : {
"name" : "jishnu",
"number" : "9847123123",
"password" : "123456"
}
}
}
モデルクラス のデータを追加しましたREAD FOR
public class LoginData {
String number;
String password;
String name;
public LoginData(String name , String number, String password) {
this.number = number;
this.password = password;
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
CODE: 私は、データを取得しようとしたエラーが原因で返すタイプで発生したその時は全く異なっている、あなたは「LoginDataと同じリターンを入力し、いくつかの他のHashMap
firebaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
GenericTypeIndicator<Map<String,LoginData>> mapType = new GenericTypeIndicator<Map<String, LoginData>>() { };
Map<String,LoginData> logindatalist = dataSnapshot.getValue(mapType);
if (logindatalist!=null) {
for (LoginData data: logindatalist.values()) {
System.out.println(data.getName());
}
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
ERROR LOG
FATAL EXCEPTION: main
Process: myapp.com.myapplication, PID: 30987
com.firebase.client.FirebaseException: Failed to bounce to type
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:208)
at myapp.com.myapplication.Login$2.onDataChange(Login.java:68)
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: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: com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class myapp.com.myapplication.model.LoginData]: can not instantiate from JSON object (need to add/enable type information?)
at [Source: [email protected]; line: 1, column: 16]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:984)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:276)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringMap(MapDeserializer.java:432)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:314)
at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:26)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2041)
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:206)
... 11 more
あなたの 'firebaseReference'はどこにポイントしていますか? –
モデルクラス 'public LoginData(){}'にデフォルトのコンストラクタ(パラメータなし)を追加する必要があると思います。 https://firebase.google.com/docs/database/android/save-dataから// _Default DataSnapshot.getValue(User.class)への呼び出しに必要なコンストラクタ_ – Wilik
"[simple type、class myapp.com.myapplication.model.LoginData]タイプの適切なコンストラクタが見つかりませんでした"というメッセージは、必須の引数なしコンストラクタ。あなたは答えとして@Wilikを提供できますか? –