我有一个小问题,我试图从我的 firebase 数据库中获取一个数字,问题是我可以获取该数字,但似乎我在将其存储在整数中时做错了。
我想做的是从 firebase 获取号码并将其与我的应用程序的版本号进行比较,这样我就可以告诉我的用户如果应用程序高于我当前的版本则更新应用程序
这是我的代码
mDatabase.child("version").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// System.out.println(dataSnapshot.getValue());
//Log.e("Versiondeapp",""+dataSnapshot.getValue());
int ultimaVersion = (int) dataSnapshot.getValue();
if(versionCode!=ultimaVersion){
ActualizarAppAlert();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我的问题就在这里
int ultimaVersion = (int) dataSnapshot.getValue();
看来我无法将该数值从 firebase 存储到整数变量
我当前的堆栈错误
java.lang.NullPointerException:尝试调用虚拟方法“int”
空对象引用上的 java.lang.Integer.intValue()'
PS:我这样做解决了我的问题Integer.valueOf(datasnapshot.getvalue().tostring());
据我所知,它与 Firebase 并不完全相关。
我认为你需要首先检查为什么你的对象为空,而不是将其转换为 int (这就是你需要的):
Integer.valueOf(dataSnapShot.getValue())
另外考虑到根据Firebase 文档 https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/DataSnapshot.html#getValue--:
getValue() 返回的可能类型有:
Boolean
Long
Double
Map<String, Object>
List<Object>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)