簡體   English   中英

如何從 firebase 數據庫中獲取一個孩子

[英]How to get a single child from firebase database

我檢查了高低,但我看到的只是人們試圖讓所有的孩子都進入列表和東西。 我只想從數據庫中獲取一個孩子。


{
  "Haydn" : {
    "Users" : {
      "email" : "user@gmail.com",
      "name" : "kofi"
    }
  }
}

我想從結構中獲取名稱。

我的代碼:

        rootNode = FirebaseDatabase.getInstance();
        reference = rootNode.getReference().child("Users");

        reference.addListenerForSingleValueEvent(
                new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                        if(snapshot.exists()){
                            String displayName = (String) snapshot.child("Haydn").child("Users").child("name").getValue();
                            loggedInUserTextView.setText(displayName);
                        }
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError error) {

                    }
                }

你設置你的參考是這樣的:

reference = rootNode.getReference().child("Users");

這意味着 Firebase 從數據庫中的/Users讀取數據。 由於您發布的 JSON 的根目錄中沒有Users節點,這意味着您獲得的snapshot將為空。


要讀取單個節點,就像您在此處嘗試做的那樣,設置對該節點確切路徑的引用:

reference = rootNode.getReference().child("Haydn/Users/name");

如您所見,您可以將整個路徑傳遞給child(...)中的節點。

使用此參考,您可以讀取如下值:

reference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot) {
        if(snapshot.exists()){
            String displayName = snapshot.getValue(String.class);
            loggedInUserTextView.setText(displayName);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError error) {
        throw error.toException();
    }
}

暫無
暫無

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

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