2016-07-18 21 views
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 
+0

あなたの 'firebaseReference'はどこにポイントしていますか? –

+1

モデルクラス 'public LoginData(){}'にデフォルトのコンストラクタ(パラメータなし)を追加する必要があると思います。 https://firebase.google.com/docs/database/android/save-dataから// _Default DataSnapshot.getValue(User.class)への呼び出しに必要なコンストラクタ_ – Wilik

+1

"[simple type、class myapp.com.myapplication.model.LoginData]タイプの適切なコンストラクタが見つかりませんでした"というメッセージは、必須の引数なしコンストラクタ。あなたは答えとして@Wilikを提供できますか? –

答えて

0

を期待していますモデルクラスにデフォルトのコンストラクタ(パラメータなし)がありません。

public LoginData() {} 
+0

nop ...もう一度同じエラー –

関連する問題