【问题标题】:Cast String data type to double in Firebase将字符串数据类型转换为 Firebase 中的两倍
【发布时间】:2026-01-07 03:10:01
【问题描述】:

我从 dataSnapshot Firebase 获取数据。我的数据都是字符串。我可以获取数据但不能将 String 转换为 double,如果我转换,我的应用程序将停止。请帮帮我。

 mReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String strName=(String) dataSnapshot.child("name").getValue();
            String strphone=(String) dataSnapshot.child("phone").getValue();
            String lati=(String) dataSnapshot.child("latitude").getValue();
            String longti=(String) dataSnapshot.child("longtitude").getValue();
            String strDiemden=(String) dataSnapshot.child("diemden").getValue();

          // double lati=Double.parseDouble(strLat);
           // double longti=Double.parseDouble(strLong);
            ;
          mMap.addMarker(new MarkerOptions().position(new LatLng(lati,longti)).title(strName));

【问题讨论】:

  • 如果没有看到您尝试解析的 JSON,就不可能说出出了什么问题(请作为实际的 JSON 文本,没有屏幕截图)。当您使用它时,还请包括您收到的错误的堆栈跟踪。
  • 感谢回复,我解决了。我的问题是 Firebase 返回了 null 值(我的值都不是 null),因为该值为 null,我不能转换,然后我使用 Map 来放置值而不是使用构造函数,我可以转换
  • 试试这个。 *.com/a/41691634/1343788

标签: android firebase firebase-realtime-database


【解决方案1】:

你能试试这个吗?

Double d1 = (Double) dataSnapshot.child("latitude").getValue();
        Double d2 = (Double) dataSnapshot.child("longtitude").getValue();

        String venueLatString = String.valueOf(d1);
        String venueLngString = String.valueOf(d2);

【讨论】:

    【解决方案2】:

    首先检查值是否为空 然后用这个

    double l =Double.parseDouble(String.valueOf(child.getValue()));

    double l = Double.parseDouble(String.valueOf(dataSnapshot.child("latitude").getValue());

    【讨论】: