2016-06-24 70 views
4
System.out.println(ref.child("[email protected]").child("_email")); 

*我真的試圖讓孩子的價值,但所有的時間我得到的值 的URL如何爲我這段代碼嘗試獲得這個網址的價值,但它找到我希望獲得_email值的URL。檢索子值-firebase-

回答

12

您正在尋找從錯誤的角度觀的數據。 在使用ref.child("[email protected]").child("_email")時,您只是簡單地指向數據庫中的某個特定位置,而不再是其他任何地方。 如果您想要檢索特定位置的數據,請考慮以下兩種方式。

首先,如果你要檢索的數據只有一次,你可以做到以下幾點:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference mostafa = ref.child("Users").child("[email protected]").child("_email"); 

mostafa.addListenerForSingleValueEvent(new ValueEventListener() { 
@Override 
public void onDataChange(DataSnapshot dataSnapshot) { 
    String email = dataSnapshot.getValue(String.class); 
    //do what you want with the email 
} 

@Override 
public void onCancelled(DatabaseError databaseError) { 

} 
}); 

或者也許你想獲取實時值,並在同一時間使用它的數據庫值都是在同一時間,只要價值在變,那麼你用這個:

mostafa.addValueEventListener(new ValueEventListener() { 
@Override 
public void onDataChange(DataSnapshot dataSnapshot) { 
    String email = dataSnapshot.getValue(String.class); 

    display.setText(email); 
} 

@Override 
public void onCancelled(DatabaseError databaseError) { 

} 
}); 

注意兩種方法的區別。首先是僅一次檢索,第二次是每當數值改變時檢索數據。

只是要記住,我發佈的代碼只是模板,可能需​​要與他們一起玩。

+0

upvoted for'addValueEventListener'。 –

1

隨着ref.child("[email protected]").child("_email")你是剛剛設置參照對象。看看java firebase documentation to retrieve data

爲了讓你將需要設置一個監聽器,供大家參考

ref.child("[email protected]").child("_email").addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot snapshot) { 
     // data available in snapshot.value() 
    } 
    @Override 
    public void onCancelled(FirebaseError firebaseError) { 
    } 
});