Firebase在Swift中检索自动ID以下的数据

时间:2017-06-22 02:46:46

标签: ios swift firebase firebase-realtime-database

我在从Firebase检索数据时遇到了麻烦。

我想在自动ID下读取JSON中的所有contactName数据,然后附加到UIPickerView。

这是我的JSON树(使用了childByAutoId()) enter image description here

这是我的Swift代码

dbRef = Database.database().reference()

dbRef.child("user").child("contacts").queryOrdered(byChild: "contactName").observeSingleEvent(of: .value, with: {(snapshot) in

    for snap in snapshot.children {

        let userSnap = snap as! DataSnapshot

        let contactName = userSnap.value as? String

            self.pickOption.append("\(contactName)")
        }
    })

但结果显示我所有的数据都是......看起来像这样。

enter image description here

我该如何修复它??

1 个答案:

答案 0 :(得分:2)

我解决了自己!

但首先,我决定不使用UIPickerView。

我想做的是添加自动ID以下的数据。

我不确定这是解决这个问题的好算法,但无论如何,我做到了:)

dbRef.child("user/contacts/").observe(.value, with: {(snapshot) in

    if let result = snapshot.children.allObjects as? [DataSnapshot] {

            for child in result {

                let orderID = child.key as String //get autoID

                self.dbRef.child("user/contacts/\(orderID)/contactName").observe(.value, with: { (snapshot) in

                    if let nameDB = snapshot.value as? String {

                        if self.debtorName == nameDB {

                            self.dbRef.child("user/contacts/\(orderID)").updateChildValues(data)
                        }
                    }
                })
            }
        }
    })