внезапно я получаю неверный путь к базе данных Firebase: driver@driver.com Пути к базе данных Firebase не должны содержать '.', '#', '$' и т. д. - PullRequest
0 голосов
/ 17 марта 2020
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.pickup, PID: 5026
com.google.firebase.database.DatabaseException: Invalid Firebase Database path: driver@driver.com. Firebase Database paths must not contain '.', '#', '$', '[', or ']'
    at com.google.firebase.database.core.utilities.Validation.validatePathString(com.google.firebase:firebase-database@@19.2.0:45)
    at com.google.firebase.database.DatabaseReference.child(com.google.firebase:firebase-database@@19.2.0:102)
    at com.example.pickup.DriverMapActivity.getAssignedCustomerPickupLocation(DriverMapActivity.java:146)
    at com.example.pickup.DriverMapActivity.access$200(DriverMapActivity.java:46)
    at com.example.pickup.DriverMapActivity$3.onDataChange(DriverMapActivity.java:130)
    at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.0:75)
    at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.0:63)
    at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.0:55)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:224)
    at android.app.ActivityThread.main(ActivityThread.java:7520)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

I / Процесс: отправка сигнала. PID: 5026 SIG: 9

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

private void getAssignedCustomerPickupLocation(){
    DatabaseReference assignedCustomerPickupLocationRef = FirebaseDatabase.getInstance().getReference().child("customerRequest").child(CustomerId).child("l");
    assignedCustomerPickupLocationRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            if(dataSnapshot.exists()){
                List<Object> map = (List<Object>) dataSnapshot.getValue();
                double locationLat = 0;
                double locationLng = 0;
                if(map.get(0) != null){
                    locationLat = Double.parseDouble(map.get(0).toString());
                }
                if(map.get(1) != null){
                    locationLng = Double.parseDouble(map.get(1).toString());
                }
                LatLng driverLatLang = new LatLng(locationLat,locationLng);
                mMap.addMarker(new MarkerOptions().position(driverLatLang).title("pickup location"));
            }

        }

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

        }
    });
}

1 Ответ

0 голосов
/ 18 марта 2020

Значение CustomerId содержит один из символов в списке недопустимых символов в сообщении об ошибке. Вам нужно будет отладить ваше приложение, чтобы выяснить, откуда это значение, и проверить его действительность, прежде чем вызывать с ним базу данных Realtime.

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