java - 从 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?
解决方案
亲爱的范德克林·罗查,
最初,TextView 不能在回调 ValueEventListener 中定义,您应该在视图启动时定义。
您的代码 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());
}
});
}
我希望这可以帮助你
推荐阅读
- python - “if”语句在 twilio 短信项目中表现得很奇怪
- c - 通过指针传递总和,产生输出错误
- excel - Excel vba用户自定义函数过滤多维数组;比循环更有效的选择?
- scala - Spark:如何告诉 Spark 使用本地 hadoop 而不是其嵌入式 hadoop?
- python - 如何使用 interp1d 为时间序列数据绘制平滑曲线?
- mysql - 只能通过命令行登录 MySQL
- c# - 在统一 C# 中,我如何使 moveInput = Input.GetAxis("Horizontal"); 不读取方向键,只检测键盘上的 a 和 d
- python - 如何使用 tkinter 更改存储在变量中的目录路径?
- java - 在java中从两个单独的季度添加数组总计
- java - 构建和运行底部导航活动时出现空指针异常