2017-09-17 31 views
0

enter image description here檢索具有多個節點的火力點數據庫中的數據

如何從這些節點獲取數據?

在這裏,我有2個父母資產和負債,每個有它自己的孩子(例如:cash_at_bank,股票等),我想從這些孩子在這個有多個數據的獲得數據。

  1. 首先我用地圖,但現在我不能使用它,因爲我不能肯定有多少孩子在IHAVE或cash_at_bank等cash_in_hand
  2. 一旦我從每個節點獲取時間我怎麼能格式化爲是可讀的用戶
+1

您是否收到任何錯誤,你能張貼代碼SAM PLE? – aUXcoder

+0

你想獲得什麼特定數據? '時間'的價值? 「價值」的價值? –

回答

0

我首先建議你不要加上「時間:value_here」爲「時間」一個孩子,而是直接加上「時間:value_here」爲「cash_at_bank」的直接子其會讓你的讀操作更簡單:

root/ 
|___ ASSETS/ 
|      |___ Cash_at_bank 
|            |___ ID1 
|                |___ time : 1223724673 
|               |___ value : 456 
|            |___ ID2 
|                |___ time : 1333768287 
|               |___ value : 789 
|    ... 

所以,如果你想訪問你的Cash_at_bank數據現在,你可以做這樣的:

let cashAtBankRef = Database.database().reference().child("ASSETS").child("Cash_at_bank") 

cashAtBankRef.observeSingleEvent(of: .value, with: { (snapshot) in 

      // Iterate through all the children : 

      for child in snapshot.children.allObjects as! [DataSnapshot] { 

       // Get the time and the value for each child : 

       guard let time = child.childSnapshot(forPath: "time").value as? NSNumber else { 
         return 
       } 

       guard let valueString = child.childSnapshot(forPath: "value").value as? String else { 
         return 
       } 

       // ...Do something with your data here (store it in an array, etc...) 

      } 

}) 

注:當然,你可能會在完全相同的方式訪問Cash_in_Hand數據,但只是改變了數據庫參考:

let cashInHandRef = Database.database().reference().child("ASSETS").child("Cash_in_Hand") 

更新:既然你問我,在這裏如果你會怎麼做它在Java中:

// Add your observer 

FirebaseDatabase.getInstance().getReference().child("ASSETS").child("Cash_in_Hand").addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      // Iterate through all the children: 

      for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) { 

        // Access your values here 
      } 
     } 
     @Override 
     public void onCancelled(DatabaseError error) { 
      } 
    }); 
+0

我使用的Android不迅速有沒有什麼辦法你可以使用Android的代碼的幫助,我試圖做你說使用時間不隨時間的孩子什麼,但它不工作,你能幫助我,太多, DatabaseReference newRef = myRef.child(類型).push(); DatabaseReference valRef = newRef.child(「values」); valRef.setValue(值2); DatabaseReference thirRef = newRef.child(「time」); thirRef.setValue(map); –

+0

好吧,我明白了,我會更新我的答案呢:) – Alex

+0

爲(DataSnapshot childSnapshot:dataSnapshot.getChildren()){ //這裏訪問你的價值觀 }它的工作的感謝,但我沒有得到任何數據我怎麼能分配給一個值,看看它是否在工作 –

相關問題