2017-09-17 32 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()){ //这里访问你的价值观 }它的工作的感谢,但我没有得到任何数据我怎么能分配给一个值,看看它是否在工作 –

相关问题