簡體   English   中英

從Firebase獲取Uid

[英]Get Uid from firebase

我正在嘗試從Firebase中找到uid。 假設我的數據庫中有3個用戶,而我想找到第3個用戶uid。

Firebase dashbord的照片

這是json formate witch從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"
  }
}

這是我所做的代碼。 但這對我不起作用。

 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) {

                     }
                 });

您正在創建一個額外的孩子,並且正在父母中進行搜索。 嘗試這樣的事情:

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
             }
  });

它可能不會提供確切的ID,但應該使您對正在發生的事情有更好的了解。

好吧狐狸經過這么多的努力,最終我得到了我的ANS, 這是我從 firebase中獲取UID的方法 ,我使用 Firebase Recyler Adapter從firebase中獲取數據,接下來您會看到自己的工作

    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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM