如何从firebase中检索数据数组

时间:2017-03-18 01:26:46

标签: python ios swift firebase firebase-realtime-database

您好我在几个方面尝试了这一点,但基本上,我在firebase数据库中使用Python上传了一系列数据。在Python中,我将所有内容添加到数组中并将其上传到数据库。在Swift中,我试图检索这样的数据

import UIKit
import Foundation
import Firebase


class CSGOView: UIViewController, UITableViewDelegate, UITableViewDataSource{

    var teams: [String] = []
    var times: [String] = []




    @IBOutlet weak var tableViewTwo: UITableView!
    let ref = FIRDatabase.database().reference(fromURL: "Took the url out it is the right url to the database im sure")

    override func viewDidLoad() {
        super.viewDidLoad()

        getTeamsAndTimes()
    }

    func getTeamsAndTimes() {
        //let userID = FIRAuth.auth()?.currentUser?.uid
        ref.child("Teams").observeSingleEvent(of: .value, with: { (snapshot) in
            // Get user value
            let value = snapshot.value as? [String: String] ?? [:]

            for team in value {
                print(team.key)
                print(team.value)
            }

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


    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 3
    }


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell: UITableViewCell? = nil
        return cell!

    }

}

虽然视图加载时没有任何内容打印到控制台,但这不起作用。我在ViewDidLoad()中运行了该方法。

这里是firebase数据库中数据的样子(我必须去,所以我会在我回来时上传它)大致就像

队   0:“teamname”   1:“teamtwo”

所以有团队然后是一个加号,然后它下降显示一个字典,其中0为关键字,“teamname”为值。如果有帮助,我在键和值之前没有随机id。我在python中使用了set方法而不是push方法。 set方法上传没有id的数据。

结果我无法上传图像,直到我有10个代表。

https://ibb.co/dSp5ka

上面的链接将带您了解firebase数据库的外观

3 个答案:

答案 0 :(得分:0)

在JavaScript中,您可以直接提供对firebaseArray的引用,并从firebase获取值作为数组。

CardLayout

不确定Swift / Python。

答案 1 :(得分:0)

希望这可以帮到你

let value = snapshot.value as? [String: String] ?? [:]

for team of value {
   print(team.key)
   print(team.value)
}

答案 2 :(得分:0)

根据您在上述帖子中提供的信息;这是我能说的最好的 -

安全规则

{
"rules": {

 ".write" : "auth != null",
 ".read" : "auth != null",

  "Teams" :{

     ".read" : "true",   // Make it publicly accessible 
    ".write" : "true",


  }
 }
}

<强> 代码

var dict = NSMutableDictionary()    // Global Declaration


FIRDatabase.database().reference().child("shows").observeSingleEvent(of: .value, with: {(Snapshot) in

       for each in Snapshot.children{

            self.dict.setObject((each as! FIRDataSnapshot).value as! String, forKey: String((each as! FIRDataSnapshot).key) as! NSCopying)
            print(self.dict)

        }

    })