2017-04-26 55 views
1

這是我第一次使用firebase,我試圖做的是回想起存儲在數據庫中的4個值到單個字符串繼承人的代碼和我的數據庫的樣子。我已經啓用了讀寫數據庫。任何幫助將不勝感激。Firebase不加載數據

我從這裏Type 'Any' has no subscript members (firebase)

得到了一些代碼,並一直在關注一個陣列https://youtu.be/XIQsQ2injLo

中存儲數據,但到目前爲止,我還沒有成功的教程。 感謝

Firebase image

import UIKit 
import Firebase 
import FirebaseDatabase 


class ViewController: UIViewController { 

@IBOutlet var Silver: UILabel! 
@IBOutlet var Aqua: UILabel! 
@IBOutlet var Orange: UILabel! 
@IBOutlet var Purple: UILabel! 




@IBAction func loadData(_ sender: Any) { 

    let databaseRef = FIRDatabase.database().reference() 

    databaseRef.queryOrderedByKey().observe(.childChanged, with: { 
     snapshot in 


     let content2 = (snapshot.value as? NSDictionary)?["aqua"] as? String ?? "" 
     let content3 = (snapshot.value as? NSDictionary)?["orange"] as? String ?? "" 
     let content4 = (snapshot.value as? NSDictionary)?["purple"] as? String ?? "" 
     let content = (snapshot.value as? NSDictionary)?["silver"] as? String ?? "" 



     print(content2) 
     print(content3) 
     print(content4) 
     print(content) 

     self.Silver.text = content 
     self.Aqua.text = content2 
     self.Orange.text = content3 
     self.Purple.text = content4 
    }) 



} 




override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    let databaseRef = FIRDatabase.database().reference() 

    databaseRef.queryOrderedByKey().observe(.childChanged, with: { 
     snapshot in 

     let content = (snapshot.value as? NSDictionary)?["silver"] as? String ?? "" 
     let content2 = (snapshot.value as? NSDictionary)?["aqua"] as? String ?? "" 
     let content3 = (snapshot.value as? NSDictionary)?["orange"] as? String ?? "" 
     let content4 = (snapshot.value as? NSDictionary)?["purple"] as? String ?? "" 


     self.Silver.text = content 
     self.Aqua.text = content2 
     self.Orange.text = content3 
     self.Purple.text = content4 
    }) 



} 




} 

回答

0

您已經使用了.childChanged觀察者嘗試下面的代碼

ref.observeSingleEvent(of: .value, with: { (snapshot) in 
    // Get user value 
    let value = snapshot.value as? NSDictionary 
    let username = value?["username"] as? String ?? "" 


    // ... 
    }) { (error) in 
    print(error.localizedDescription) 
} 
+0

它現在做的事情,我想,這是不拉任何值,它只是一言不發 – Yellow

+0

我得到這個錯誤「2017-04-26 19:59:33.460986 + 1000 ScoreTally [10118:163608] [] nw_connection_get_connected_socket_block_invoke 9連接沒有連接處理程序」 – Yellow

+0

您的firebas中的數據的方式e也不合適在裏面創建一個父節點,它把你所有的值 –