Estructura de mi base de datos

Esta es mi base de datos en Firebase y estoy desarrollando una aplicación para Android. Ahora quiero recuperar todos los datos del nodo "Generado" donde mi ID de usuario actual coincide con el "ID de usuario" en los datos.

Quiero conocer la consulta en Firebase para obtener esos datos en particular.

-6
Rohan Gaekwad 20 feb. 2018 a las 22:54

2 respuestas

La mejor respuesta

Consulta de Firebase consulta de base de fuego

Lee la documentación de Firebase Realtime Database para tener una idea de la base de datos de firebase realtime

Para obtener la usuario actual Uid

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String current_uid = user.getUid(); // user.getUid() will return null if you are not log in
    DatabaseReference db = FirebaseDatabase.getInstance().getReference();

    Query query = db.child("Leads").child("Generated").orderByChild("userid").equalTo(current_uid);
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

                      // do something

            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

O prueba este

db.child("Leads").child("Generated").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists())
            {
                for (DataSnapshot ds: dataSnapshot.getChildren())
                {
                    SomeClass someClass = ds.getValue(SomeClass.class);
                    if(someClass.getUid().equals("uid")){
                        // i don't if it is the best practice or not but you can do with this as well
                    }
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
1
Salman500 21 feb. 2018 a las 18:55

Para acceder a todos los elementos de esa referencia, necesitará algo como esto:

mDatabase.child("Leads").child("Generated").child(uid).addValueEventListener(new ValueEventListener() {
                final List<String> lstItems= new ArrayList<String>();

                @Override
                public void onDataChange(final DataSnapshot dataSnapshot) {

                    for(DataSnapshot ds : dataSnapshot.getChildren()) {
                        String name = (String) ds.getKey();
                        String values = (String) ds.getValue();
                        Log.e("Values",""+values );
                        lstItems.add(values );

                    }

PD: puede eliminar .child(uid) en su referencia si desea obtener todos los hijos de Generated (serán todos los uids).

0
halfer 26 ago. 2018 a las 21:10