无法将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