从Firebase数据库检索/读取数据

先生。德米雷尔

我正在使用此代码从Firebase数据库检索数据。但是,我一次只能提取一个变量。您能帮我找到一种拉取其他方式(学生姓名,职务等)并将其保存到对象arrayList的方法吗?

{
  "projects" : [ 
     1, {
        "answer1" : false,
        "answer2" : true,
        "answer3" : true,
        "campus" : "Science Academy",
        "category" : "LifeScience",
        "question1" : "This is question 1",
        "question2" : "This is question 2",
        "question3" : "This is question 3",
        "student1" : "john",
        "student2" : "Kyle",
        "title" : "Amazon Forest"
        }
   ]
 }


var ref : DatabaseReference?
var handle : DatabaseHandle?


    ref = Database.database().reference()
    handle = ref?.child("projects").child("1").child(question1).observe(.value, with: { (snapshot) in
        if let question = snapshot.value as? String {
            print(question)
        }
    })
丹尼尔·德拉蒙德

如果您的数据库有更多功能,projects/1并且您想要访问项目/ 1-2-3-4等,那么您将需要执行以下操作:

    let reference = Database.database().reference()
    reference.child("projects").observe(.childAdded, with: { (snapshot) in

        let key = snapshot.key // THIS WILL GET THE PROJECT THAT IT'S IN. 1, 2, 3, 4 etc.

        guard let dictionary = snapshot.value as? [String: AnyObject] else { return }

        let answer1 = dictionary["answer1"] as? Bool
        let campus = dictionary["campus"] as? String

    }, withCancel: nil)

如果您想简单地掌握其中的所有值,project/1而不仅仅是问题,那么您将需要执行以下操作:

    let reference = Database.database().reference()
    reference.child("projects").child("1").observeSingleEvent(of: .value, with: { (snapshot) in

        let key = snapshot.key // THIS WILL GET THE PROJECT THAT IT'S IN. 1, 2, 3, 4 etc.

        guard let dictionary = snapshot.value as? [String: AnyObject] else { return }

        let answer1 = dictionary["answer1"] as? Bool
        let campus = dictionary["campus"] as? String

    }, withCancel: nil)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章