stringfirebaseandroid-studiofirebase-realtime-database

Invalid Firebase Database path: Firebase Database paths must not contain '.', '#', '$', '[', or ']'


E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.navigation, PID: 16377
    com.google.firebase.database.DatabaseException: Invalid Firebase Database path: 1. cotton. Firebase Database paths must not contain '.', '#', '$', '[', or ']'
        at com.google.firebase.database.core.utilities.Validation.validatePathString(com.google.firebase:firebase-database@@19.2.1:45)
        at com.google.firebase.database.DatabaseReference.child(com.google.firebase:firebase-database@@19.2.1:102)
        at com.example.navigation.camera$2.onClick(camera.java:208)
        at android.view.View.performClick(View.java:6325)
        at android.view.View$PerformClick.run(View.java:25114)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:192)
        at android.app.ActivityThread.main(ActivityThread.java:6748)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:875)
I/Process: Sending signal. PID: 16377 SIG: 9

enter image description here

I want to retrieve specific value information from the firebase can You please help? why I'm getting this error


Solution

  • Changed the label in xml file which gives me wrong path !

                reff.child("CropName").child("Tea").addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        showData(dataSnapshot);
                    }
    
                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
                    }
                }) ;
            }else if ((retrieve).matches("Cotton")){
                reff.child("CropName").child("Cotton").addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        showData(dataSnapshot);
                    }
                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
    
                    }
                });
            }
    

    Changed cropname to retrieve and changes the label.txt label as first letter capital because i m using Tea as label

    reff.child("CropName").child("Tea").addValueEventListener(new  
    

    I hope this answer would help you guys! Thank You.