无法将java.lang.String转换为java.lang.Long firebase realtime
我有这个错误有人知道如何修复吗无法将java.lang.String转换为java.lang.Long firebase realtime,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我有这个错误有人知道如何修复吗 java.lang.String cannot be cast to java.lang.Long LOGCAT java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long at com.appcom.Cassino$1.onDataChange(Cassino.java:68) at com.google.android.gms.
java.lang.String cannot be cast to java.lang.Long
LOGCAT
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
at com.appcom.Cassino$1.onDataChange(Cassino.java:68)
at com.google.android.gms.internal.firebase_database.zzfc.zza(Unknown Source)
at com.google.android.gms.internal.firebase_database.zzgx.zzdr(Unknown Source)
at com.google.android.gms.internal.firebase_database.zzhd.run(Unknown Source)
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)
代码/行错误
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long v= (long) dataSnapshot.getValue(); // This is the line of error
CountDownTimer countDownTimer=new CountDownTimer(v,1000) {
@Override
public void onTick(long millisUntilFinished) {
mQnATimer.setText("time : "+millisUntilFinished/1000);
}
@Override
public void onFinish() {
}
}.start();
}
如果结果是如下所示的长字符串,则必须使用long.parseLong进行转换。它不能直接指向长对象
String str = "21111";
long num = Long.parseLong(str);
您使用的方式仅支持子类对象的父对象。Firebase认为不带双引号的值与字符串的“8”一样长,与字符串的“8”一样长。因此,请确保Firebase数据库中有带双引号的字符串数据。
另外,使用.parseLong进行转换。这看起来是一个非常简单的问题。但是,如果没有看到您的实际数据结构,我无法确定 从logcat中,看起来您得到了一个字符串值,当您试图将其转换为long时,您得到了一个异常 在这种情况下,我建议您执行以下操作
Long v = Long.parseLong((String) dataSnapshot.getValue());
如果字符串没有有效的Long,那么它应该引发另一个异常。但是,正如我所说的,如果不使用一些示例数据查看数据库结构,就很难理解确切的问题
我希望这会有所帮助。请发布数据库结构请将您的数据库结构添加为JSON文件或至少是屏幕截图。请同时回复@AlexMamo