Не удалось получить данные из базы данных Firebase - он возвращает нулевое значение - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь получить данные из Firebase:

 DatabaseReference customerRef = FirebaseDatabase.getInstance().getReference("Drivers").child(driverId).child("customerRideId");
 Log.d("TAG_SiX",customerRef.toString());

 customerRef.addValueEventListener(new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {
        // retriveCustomerID(dataSnapshot);
         Log.d("TAG_eight",dataSnapshot.toString());
         Map<String,String> map = 
           (Map<String,String>)dataSnapshot.getValue();

     }

     @Override
     public void onCancelled(DatabaseError databaseError) {

     }
 });

Вот значение logcat

D/TAg_five: DataSnapshot { key = customerRideId, value = null }

05

Вот структура данных Firebase, мне нужно значение customerRideId, которое в logcat показывает null, а customerRideId находится в DriverID.

Drivers
    PyltxOLXcWfZf6itgJEMWC4ylDu2
           driverEmail: "nishant@gmail.com"
           driverName: "Nishant"
    customerRideId: "Sqpb6RFNhMOSiXeCrYj83aeeG7r2"

Я хочу получить значение customerRideId, но в logcat оно показывает нулевое значение, пожалуйста, помогите мне в этом.

here is the database screenshot

База данных Снимок экрана здесь

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Попробуйте этот код ..

        DatabaseReference customerRef = FirebaseDatabase.getInstance().getReference();
    Query query1=customerRef.child("Drivers").child(customerRef.getKey()).child("customerRideId");
    Log.d("TAG_SiX", customerRef.toString());
    query1.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            // retriveCustomerID(dataSnapshot);
            Log.d("TAG_eight", dataSnapshot.toString());
            Map<String, String> map =
                    (Map<String, String>) dataSnapshot.getValue();

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
0 голосов
/ 02 мая 2018

Чтобы получить значение вашей customerRideId недвижимости, используйте следующий код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference driverIdRef = rootRef.child("Drivers");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        String customerRideId = dataSnapshot.child("customerRideId").getValue(String.class);
        Log.d("TAG", customerRideId);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
driverIdRef.addListenerForSingleValueEvent(valueEventListener);

Вывод будет: Sqpb6RFNhMOSiXeCrYj83aeeG7r2.

0 голосов
/ 02 мая 2018

убедитесь, что вы добавили соответствующие зависимости в gradle, и в базе данных Firebase есть некоторые данные Если все это хорошо, попробуйте:

private FirebaseDatabase database;

В вашем методе:

database=FirebaseDatabase.getInstance();
DatabaseReference customerRef = database.getReference("Drivers/"+driverId+"/customerRideId");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...