如何使用Swift从Firebase中的一个孩子获取所有数据

时间:2016-06-19 02:35:01

标签: swift firebase firebase-realtime-database

My Database

如何在不知道用户ID的情况下获取数据库中所有项目的子电子邮件值?

我试过这个:

var userRef = Firebase(url:MY_FIREBASE_URL)
    userRef.child("email").observeSingleEventOfType(
       .Value, withBlock: { (snapshot) -> Void in

            for child in snapshot.children {

                let childSnapshot = snapshot.childSnapshotForPath(child.key)
                let someValue = childSnapshot.value!["key"] as! String
                print("value \(someValue)")
            }
    })

和许多其他变化似乎没有任何作用。似乎XCode只是一起跳过代码。

2 个答案:

答案 0 :(得分:0)

通过使用observeEvenType方法,您可以在不知道用户ID的情况下获取所有“电子邮件”值

 databaseRef = FIRDatabase.database().reference()
 let userRef = self.databaseRef.child("users")
 userRef.observeEventType(.ChildAdded, withBlock: {(snapshot) in
 let email = snapshot.value?["email"] as! String

答案 1 :(得分:0)

您已阅读完整的树以获取所有数据,而不是优化密钥和值。

ref.child("users").observeSingleEvent(of: .value) { (snapshot) in
        print(snapshot.key)
        print(snapshot.value)
    }

这将立即为您阅读完整的树。