如何解决从Firebase数据库接收数字数据
我想在TextView中显示分数的数值,但是应用程序始终关闭。
这是我的代码
FirebaseDatabase database = FirebaseDatabase.getInstance();
FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference myRef = database.getReference("users").child(currentFirebaseUser.getUid());
// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String valuePoints = dataSnapshot.child("current_points").getValue(String.class);
mTextViewPoints = findViewById(R.id.current_points);
mTextViewPoints.setText(valuePoints);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
// Log.w(TAG,"Failed to read value.",error.toException());
}
});
}```
Other values that contain letters are numbers he displays,but when it comes only to numbers he closes.
Where am I going wrong?
解决方法
Vanderclin Rocha亲爱的
最初,无法在回调ValueEventListener中定义TextView,应在启动视图时定义您。
代码textView中的问题返回null,您可以进行调试并查看它。 这是获取数据并将其设置为TextView的当前方法。
FirebaseDatabase database = FirebaseDatabase.getInstance();
FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference myRef = database.getReference("users").child(currentFirebaseUser.getUid());
TextView mTextViewPoints = findViewById(R.id.current_points);
// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String valuePoints = dataSnapshot.child("current_points").getValue(String.class);
mTextViewPoints.setText(valuePoints);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
// Log.w(TAG,"Failed to read value.",error.toException());
}
});
}
我希望这对您有帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。