[英]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.