简体   繁体   中英

Get Uid from firebase

I am trying to find the uid from firebase. Let's say I have 3 users in my database, and I want to find the 3rd user uid.

Firebase dashbord的照片

Here is json formate witch is just export from firebase:

{
  "-KVKrXu70Ziw0iRw46l5" : {
    "age" : 20,
    "emailId" : "ameerhamza",
    "name" : "hamza"
  },
  "-KVKrkVy5OojpsSUEI24" : {
    "age" : 20,
    "emailId" : "ameerhamza",
    "name" : "hamza"
  },
  "-KVKrkzXy9duyiZq5bM0" : {
    "age" : 21,
    "emailId" : "ameerhamzaaaa",
    "name" : "hamza"
  },
  "-KVKrl5Ax7ptodMYywzg" : {
    "age" : 22,
    "emailId" : "ameerhamza",
    "name" : "hamza"
  },
  "-KVKrr7E6b4-3x6tuwOX" : {
    "age" : 23,
    "emailId" : "ameerhamza",
    "name" : "hamza"
  },
  "-KVKruES01regClm6tWW" : {
    "age" : 24,
    "emailId" : "ameerhamza",
    "name" : "hamza"
  }
}

Here is code what I done. But it is not working for me.

 final FirebaseDatabase database = FirebaseDatabase.getInstance();
        myRef = database.getReference();
       DatabaseReference newRef = myRef.push();
          i++;
                    Student s = new Student("ameerhamza",i,"hamza");
                    newRef.child(newRef.getKey()).setValue(s);
                    final Query queryRef = myRef.orderByChild("emailId").equalTo("ameerhamzaaaa");

                 queryRef.addListenerForSingleValueEvent(new ValueEventListener() {
                     @Override
                     public void onDataChange(DataSnapshot dataSnapshot) {
                         Log.d("Firebase UID ",dataSnapshot.getKey());//it always null 
                         Student s = dataSnapshot.getValue(Student.class);



                     }

                     @Override
                     public void onCancelled(DatabaseError databaseError) {

                     }
                 });

You're creating an extra child and you're searching within the parent. Try something like this:

final FirebaseDatabase database = FirebaseDatabase.getInstance();
myRef = database.getReference();
DatabaseReference newRef = myRef.push();

i++;
Student s = new Student("ameerhamza",i,"hamza");
newRef.setValue(s);

myRef
  .orderByChild("emailId")
  .equalTo("ameerhamzaaaa")
  .addListenerForSingleValueEvent(new ValueEventListener() {
             @Override
             public void onDataChange(DataSnapshot dataSnapshot) {
                 Map<String, Student> data = dataSnapshot.getValue(new GenericTypeIndicator<Map<String, Student>>() {});
                 Map.Entry<String, Student> entry = data.entrySet().iterator().next();
                 String uid = entry.getKey();
                 Student s = entry.getValue();
                 Log.d("Firebase UID ", uid);
             }

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

It probably doesn't give you the exact id but should give you a better understanding of what's happening.

All Right fox after so much hard work, finaly i get my ANS , Here is how i get the UID from firebase , i use the Firebase Recyler Adapter to get Data From firebase and next you see your self what i done

    adapter = new FirebaseRecyclerAdapter<Student, myViewHolader>(


            Student.class,R.layout.item_row,myViewHolader.class,myRef
    ) {
        @Override
        protected void populateViewHolder(myViewHolader viewHolder, Student model, int position) {

            Log.e("myFirebase UID",adapter.getRef(position).getKey());

        }
    };

    recyclerView.setAdapter(adapter);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM