如何显示从firestore数据库到android工作室的十进制值



我试图将firestore数据库中的点显示给我的android应用程序,但它只显示整数,而不是实际包括小数。Firestore数据库:https://i.stack.imgur.com/UyexJ.jpgAndroid应用程序:https://i.stack.imgur.com/zffM3.jpg

我读过以前关于格式("#.##"(或小数格式("#,###.####"(但我不完全确定如何将其应用于我的代码。

public class MainActivity extends AppCompatActivity {
private TextView powents;
FirebaseFirestore fStore;
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button logout = findViewById(R.id.logout);
ImageView qrimage = findViewById(R.id.qrimage);
powents = findViewById(R.id.powents);
fStore = FirebaseFirestore.getInstance();
fAuth = FirebaseAuth.getInstance();
FirebaseUser user = fAuth.getCurrentUser();
if (user != null) {
String mail = user.getEmail();
DocumentReference docref = fStore.collection("Users").document(mail);
docref.addSnapshotListener(this, (documentSnapshot, error) -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
powents.setText(String.valueOf(Math.toIntExact(documentSnapshot.getLong("Points"))));
}
});
}
try {
BarcodeEncoder barcode = new BarcodeEncoder();
Bitmap bitmap = barcode.encodeBitmap(Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getEmail(), BarcodeFormat.QR_CODE, 650, 650);
qrimage.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
logout.setOnClickListener(view -> {
FirebaseAuth.getInstance().signOut();
Toast.makeText(MainActivity.this, "Logged Out!", Toast.LENGTH_SHORT).show();
startActivity(new Intent(MainActivity.this, Login.class));
finish();
});
}
}

您的代码明确要求Firestore提供一个长(整数(值:

documentSnapshot.getLong("Points")

这不是你想要的。您想要一个双(浮点(值,而不是使用getDouble((:

documentSnapshot.getDouble("Points")

然后,您可以将其转换为TextView的字符串。

最新更新