Создать исключение NullPointerException для класса Array - PullRequest
0 голосов
/ 18 марта 2019

Проблема:

Я пытаюсь извлечь координаты местоположения в моей базе данных Firebase, но кажется, что координаты (широта и долгота), обработанные в моем массиве, возвращают нулевое значение.Я получаю исключение NullPointerException.

Я думаю, что в этом проблема.выглядит так:

image of Map

Моя база данных обновляет местоположение, но карта не позиционирует свой маркер в этом месте.Как мне это решить?

Что я попробовал:

Вот фрагмент моего кода о том, как я передаю свои данные в базу данных Firebase.

public void sendDataToFirebase(SmsMessage sms, Context context) {
    FirebaseApp.initializeApp(context);
    databaseLocation = FirebaseDatabase.getInstance().getReference("conilocationdata");

    String senderNumber = sms.getOriginatingAddress();
    String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
    String message = sms.getMessageBody();
    String[] separatedSMS = message.split("\\s+");

    if(senderNumber.equals("+000000000000000")) {
        DatabaseReference mRef = databaseLocation.push();
        Double latitudedb = Double.parseDouble(separatedSMS[1]);
        Double longitudedb = Double.parseDouble(separatedSMS[3]);

        LocationArray locationArray = new LocationArray(mydate,senderNumber,latitudedb,longitudedb);
        databaseLocation.child("conilocationdata").push().setValue(locationArray);

        Log.e("FIREBASE OPERATIONS:","Location data inserted");
    }

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

public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    googleMap.setOnMarkerClickListener(this);
    googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
    mChild.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            for(DataSnapshot s: dataSnapshot.getChildren()) {
                LocationArray locationArray = s.getValue(LocationArray.class);
                LatLng location = new LatLng(locationArray.latitude,locationArray.longitude);
                mMap.addMarker(new MarkerOptions().position(location).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_VIOLET)));

                Log.e("MAP OPERATIONS:","Marker has been added to updated location");
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

Это мой LocationArray.class

LocationArray Snippet Code

... к которому я обращаюсь по вышеуказанному коду.Как я могу исправить мою проблему?

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