Я получаю не могу передать NULL для аргумента 'pathString' в ошибке child () в этом коде - PullRequest
0 голосов
/ 07 марта 2020

Я недавно изменил базу заказов Firebase на Location, и я знаю, что что-то пропустил там или здесь, но не могу точно найти проблему. Может кто-нибудь указать мне, что я здесь делаю не так?

Это ошибка

2020-03-07 13: 26: 52.952 32564-32571 /? E / zygote: Сбой при отправке ответа отладчику: Сломанный канал 32564-32620 / com.example.policeemergencysystem E / eglCodecCommon: glUtilsParamSize: неизвестный параметр 0x000082da 2020-03-07 13: 27: 09.533 32564-32564 /? E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.example.policeemergencysystem, PID: 32564 java .lang.RuntimeException: Невозможно запустить действие ComponentInfo {com.example.policeemergencysystem / com.example.policeemergencysystem.AdminViewMaps8ctivity * .lang.NullPointerException: Невозможно передать значение NULL для аргумента pathString в child () в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2817) в android .app.ActivityThread.handleLaunchActivity ( ActivityThread. java: 2892) в android .app.ActivityThread.-wrap11 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1593) в android .os.Handler.dispatchMessage (Обработчик. java: 105) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main (ActivityThread. java: 6541) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.Zygote $ MethodAndArgsCaller.run (Zygote. java: 240) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 767) Причина: * 1 038 * .lang.NullPointerException: Невозможно передать ноль для аргумента 'pathString' в child () в com.google.firebase.database.DatabaseReference.child (com.google.firebase: firebase-database @@ 19.2.1: 96 ) в com.example.policeemergencysystem.AdminViewMapsActivity.onCreate (AdminViewMapsActivity. java: 38) в android .app.Activity.performCreate (Activity. java: 6975) в android .app.Instrumentation.callActivityOnCreate ( Инструментарий. java: 1213) в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2770) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 2892) в android .app.ActivityThread.-wrap11 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1593) в android .os.Handler.dispatchMessage (обработчик. java : 105) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main (ActivityThread. java: 6541) в java .lang .reflect.Method.invoke (собственный метод) в com. android .internal.os.Zygote $ MethodAndArgsCaller.run (Zygote. * 1 060 *: 240) по тел. android .internal.os.ZygoteInit.main (ZygoteInit. java: 767)

Это код.

package com.example.policeemergencysystem;

import android.os.Bundle;

import androidx.fragment.app.FragmentActivity;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

public class AdminViewMapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;
    DatabaseReference mMaps;
    private String userID = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_view_maps);
        userID = getIntent().getStringExtra("uid");


        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

        mMaps = FirebaseDatabase.getInstance().getReference().child("Location").child(userID);
    }


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

        mMaps.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                double latitude = dataSnapshot.child("latitude").getValue(Double.class);
                double longitude = dataSnapshot.child("longitude").getValue(Double.class);
                LatLng latLng = new LatLng(latitude, longitude);
                mMap.addMarker(new MarkerOptions().position(latLng).title("Location"));
                CameraPosition cameraPosition = new CameraPosition.Builder()
                        .target(latLng)
                        .zoom(12).build();
                //Zoom in and animate the camera.
                mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
    }
}

Это как выглядит моя база данных firebase 1-ая

Я изменяю эту таблицу. (Заказы на место)

1 Ответ

1 голос
/ 07 марта 2020

В вашей базе данных нет идентификатора пользователя, а только имя администратора в жестком коде.

mMaps = FirebaseDatabase.getInstance().getReference().child("Location").child("admin");

Использовать вышеуказанную ссылку на базу данных.

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