Как показать все токены в базе данных от разных пользователей? - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть база данных, разные пользователи, которые были зарегистрированы в приложении, оставляют свои записи в ней!

    {
  "Markers" : {
    "QPNTWLeoDfTwqYN9RuHnC7H0n8r2" : {
      "-M5YizSvCCp_kq8sO1Cw" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "23, апр., 2020",
        "latitude" : "53.912536924731626",
        "longitude" : "27.437333911657333",
        "permission" : false,
        "time" : "00:12"
      }
    },
    "brTRf3EfqzaWuaw0q42Ay8Jnj0F3" : {
      "-M5Tp8BZpUkJSbmV4Qya" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "22, апр., 2020",
        "latitude" : "53.9150522051367",
        "longitude" : "27.440601512789726",
        "permission" : false,
        "time" : "01:21"
      },
      "-M5XhMon2UZiD6M_Zbp5" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "22, апр., 2020",
        "latitude" : "53.914562076017575",
        "longitude" : "27.441855780780315",
        "permission" : false,
        "time" : "19:25"
      },
      "-M5XkVjlUBLwPONPVXd_" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "22, апр., 2020",
        "latitude" : "53.91481405286665",
        "longitude" : "27.440402694046494",
        "permission" : false,
        "time" : "19:39"
      },
      "-M5XkYB8KqJ7IGa9Ft66" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "22, апр., 2020",
        "latitude" : "53.91437585704003",
        "longitude" : "27.44145680218935",
        "permission" : false,
        "time" : "19:39"
      },
      "-M5XuRYuQfYdDJjw9fNq" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "22, апр., 2020",
        "latitude" : "53.914825308850304",
        "longitude" : "27.439645305275917",
        "permission" : false,
        "time" : "20:22"
      }
    },
    "dn4OFc5HfTbxwaTBItwHYPqcmgG2" : {
      "-M5XupI0aE8WyyjV32kP" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "22, апр., 2020",
        "latitude" : "53.912928534048646",
        "longitude" : "27.43777111172676",
        "permission" : false,
        "time" : "20:24"
      },
      "-M5XurgViEMrVS_2o6pC" : {
        "bus_station" : "Минск, Беларусь\n",
        "comments" : "",
        "date" : "22, апр., 2020",
        "latitude" : "53.912716239993195",
        "longitude" : "27.4398085847497",
        "permission" : false,
        "time" : "20:24"
      }
    }
  }
}

и каждая запись имеет координаты! Как мне отобразить их на карте?

при этом:

    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference markersRef = rootRef.child("Markers");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String latitude = ds.child("latitude").getValue(String.class);
            String longitude = ds.child("longitude").getValue(String.class);
            Log.d("TAG", latitude + ", " + longitude);
            LatLng location = new LatLng(Double.parseDouble(latitude), Double.parseDouble(longitude));

            //Add the location to a list of locations
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
    }
};
markersRef.addListenerForSingleValueEvent(valueEventListener);

но мне ничего не отображается! logcat выбрасывает ноль, ноль и пишет ошибку:

    2020-04-22 23:10:12.031 18972-18972/by.sviter.stop E/AndroidRuntime: FATAL EXCEPTION: main
Process: by.sviter.stop, PID: 18972
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.trim()' on a null object reference
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
    at java.lang.Double.parseDouble(Double.java:538)
    at by.sviter.stoprevizor.tabs.maps.MapsFragment$3$1.onDataChange(MapsFragment.java:337)
    at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@19.2.1:179)
    at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.1:75)
    at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.1:63)
    at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.1:55)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6718)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Попытка вызвать виртуальный метод 'java .lang.String java .lang.String.trim ()' для нуля ссылка на объект для местоположения: LatLng location = new LatLng (Double.parseDouble (широта), Double.parseDouble (долгота));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...