簡體   English   中英

如何在firebase數據庫中檢索特定孩子的數據 - android studio/java?

[英]How to retrieve data for a specific child in firebase database - android studio/ java?

我想檢索特定孩子的數據,我該如何編寫代碼? 我嘗試了很多,但沒有奏效:"([ 就像在我的數據庫中一樣,如何為特定孩子(如 lubna)獲取任務並獲取所有孩子的任務?

初始化類變量:

private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
private DatabaseReference  lubnaRef = mDatabase.child("tasks/Lubna");

然后出於測試目的,我假設您在活動的onCreate方法中調用它,假設您沒有數據模型,您將添加以下內容:

lubnaRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        //These are all of your children.
        Map<String, Object> lubna = (Map<String, Object>) dataSnapshot.getValue();


        for (String childKey: lubna.keySet()) {
            //childKey is your "-LQka.. and so on"
            //Your current object holds all the variables in your picture.
            Map<String, Object> currentLubnaObject = (Map<String, Object>) lubna.get(childKey);

            //You can access each variable like so: String variableName = (String) currentLubnaObject.get("INSERT_VARIABLE_HERE"); //data, description, taskid, time, title
        }
   }

   @Override
   public void onCancelled(DatabaseError databaseError) {

   }
});

要解決此問題,請使用以下代碼行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference lubnaRef = rootRef.child("tasks").child("Lubna");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String title = ds.child("title").getValue(String.class);
            Log.d(TAG, title);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage());
    }
};
lubnaRef.addListenerForSingleValueEvent(valueEventListener);

與獲取title方式相同,您還可以獲取其他值。 logcat 中的輸出將是:

Homework
//and so on

暫無
暫無

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

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