2017-04-10 18 views
0
내가 중포 기지 데이터베이스하지만 때마다 나는 그것이 나에게 오류를 제공 할에서 긴 업데이트하기 위해 노력 해왔다

에서 ...이 내 중포 기지 데이터베이스입니다업데이트 긴 중포 기지 데이터베이스

는 ClassCastException :에 직면하고있어

: java.lang.String의이 내 스택 트레이스입니다 java.lang.Long의

캐스트 할 수없는 사람이 중포 기지에 긴 업데이트의 또 다른 방법을 알고 있다면

D/NativeCrypto: ssl=0x56944ba8 sslWrite buf=0x427180f8 len=99 write_timeout_millis=0 
D/NativeCrypto: sslNotify, appData=0x5807ff10 ret=1 
D/NativeCrypto: sslSelect, appData=0x5807ff10 woken up by a token 
D/NativeCrypto: sslSelect, appData=0x5807ff10 read ret=1 
D/SQLiteDatabase: beginTransaction() 
D/SQLiteDatabase: endTransaction() 
D/AndroidRuntime: Shutting down VM 
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4187ece0) 
W/dalvikvm: threadid=1: uncaught exception occurred 
W/System.err: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long 
W/System.err:  at com.example.zack.admin.ViewFixtureActivity$1.onDataChange(ViewFixtureActivity.java:85) 
W/System.err:  at com.google.android.gms.internal.zzaih.zza(Unknown Source) 
W/System.err:  at com.google.android.gms.internal.zzajh.zzctc(Unknown Source) 
W/System.err:  at com.google.android.gms.internal.zzajk$1.run(Unknown Source) 
W/System.err:  at android.os.Handler.handleCallback(Handler.java:808) 
W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:103) 
W/System.err:  at android.os.Looper.loop(Looper.java:193) 
W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5299) 
W/System.err:  at java.lang.reflect.Method.invokeNative(Native Method) 
W/System.err:  at java.lang.reflect.Method.invoke(Method.java:515) 
W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
W/System.err:  at dalvik.system.NativeStart.main(Native Method) 
W/dalvikvm: threadid=1: calling UncaughtExceptionHandler 
E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.example.zack.admin, PID: 26018 
        java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long 
         at com.example.zack.admin.ViewFixtureActivity$1.onDataChange(ViewFixtureActivity.java:85) 
         at com.google.android.gms.internal.zzaih.zza(Unknown Source) 
         at com.google.android.gms.internal.zzajh.zzctc(Unknown Source) 
         at com.google.android.gms.internal.zzajk$1.run(Unknown Source) 
         at android.os.Handler.handleCallback(Handler.java:808) 
         at android.os.Handler.dispatchMessage(Handler.java:103) 
         at android.os.Looper.loop(Looper.java:193) 
         at android.app.ActivityThread.main(ActivityThread.java:5299) 
         at java.lang.reflect.Method.invokeNative(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:515) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
         at dalvik.system.NativeStart.main(Native Method) 

, 또한입니다 환영합니다. 데이터베이스에서 올바른 값을 받고 수 있도록 장소에

+0

문자열 데이터가 있고 문자열을 사용하여 유형을 캐스팅했는지 확인 했습니까? 오류에 따라 문자열이있는 데이터를 파싱하고 문자열로 직접 변환합니다. 개체의 데이터를 구문 분석하는 데 더 좋은 옵션 인 POJO 클래스로 데이터를 가져와 참조하십시오. – ashish

답변

0

사용 String.valueOf()(String)

String.valueOf(dataSnapshot.child("Team_C").child("team_name").getValue());

+0

고마워, 시도했지만이 오류가 발생합니다 : com.google.firebase.database.DatabaseException : java.lang.String 형식의 값을 long으로 변환하지 못했습니다. – Zack

0

으로 캐스팅하는 경우는 첫째, 반드시 당신의 DatabaseReference mDatabaseGroup/Groups/Key/A의 올바른 위치에 있는지 확인하십시오. 당신이 (즉,/그룹/-Kh2GRPKiuQdePCubLi0/A/Team_A/D) 긴 형식의 단일 값을 읽으려면

둘째,

final long team_ad = dataSnapshot.child("Team_A").child("d").getValue(Long.class); 
1

을하려고하면 다음과 같은 코드 수 :

참조 (그룹/-Kh2GRPKiuQdePCubLi0/A)에서 읽을 경우
FirebaseDatabase.getInstance().getReference("Groups/-Kh2GRPKiuQdePCubLi0/A/Team_A/d").addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      Long team_ad = dataSnapshot.getValue(Long.class); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

, 당신은 다음과 같은 코드 수 :

// Create a model class for your dataSnapshot 
public static class Team { 
    public long d; 
    public long l; 
    public long p; 
    public long pts; 
    public String team_name; 
    public long w; 

    public Team() { 
     // Default constructor required for calls to DataSnapshot.getValue(Team.class) 
    } 
} 
// Read from database 
FirebaseDatabase.getInstance().getReference("Groups/-Kh2GRPKiuQdePCubLi0/A").addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for(DataSnapshot childDataSnapShot: dataSnapshot.getChildren()){ 
       Team team = childDataSnapShot.getValue(Team.class); 
       switch (childDataSnapShot.getKey()) 
       { 
        case "Team_A": 
         final String team_a = team.team_name; 
         final long team_ad = team.d; 
         final long team_al = team.l; 
         final long team_ap = team.p; 
         final long team_aw = team.w; 
         final long team_apts = team.pts; 
         break; 
        case "Team_B": 
         final String team_b = team.team_name; 
         final long team_bd = team.d; 
         final long team_bl = team.l; 
         final long team_bp = team.p; 
         final long team_bw = team.w; 
         final long team_bpts = team.pts; 
         break; 
        case "Team_C": 
         final String team_c = team.team_name; 
         final long team_cd = team.d; 
         final long team_cl = team.l; 
         final long team_cp = team.p; 
         final long team_cw = team.w; 
         final long team_cpts = team.pts; 
         break; 
        default: 
         break; 
       } 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      // Getting Team failed, log a message 
      Log.w(LOG_TAG, "loadTeam:onCancelled ", databaseError.toException()); 
     } 
    }); 
} 

참조 : https://firebase.google.com/docs/database/android/read-and-write#read_and_write_data

관련 문제