Swift和Firebase - 一次添加多个节点,具有相同的Id

时间:2017-07-07 02:28:26

标签: ios swift firebase

我尝试在创建公司的同时添加多个节点。我一次只能添加一个节点。我想在这张图片中得到结果。我需要在创建时获取childByAutoId,以将其用作引用以添加第二个节点。 然后我就像这样添加值。

"isActive": self.isActiveSwitch.isOn 

Image1

Database.database().reference().child(“Company”).childByAutoId.child("Profile").setValue([
 "Name": cName.text!,
 "Address": cAddress.text!,
 "City": cCity.text!,
 "State": cState.text!,
 "Zip": cZip.text!
])

Image2

这就是我现在正在做的事情

1 个答案:

答案 0 :(得分:1)

您可以通过这种方式获取childByAutoId密钥,然后使用后者添加STATUS节点。

let ref = Database.database().reference().child("Company").childByAutoId
let key = ref.key
//Now set profile node
ref.child("Profile").setValue([
    "Name": cName.text!,
    "Address": cAddress.text!,
    "City": cCity.text!,
    "State": cState.text!,
    "Zip": cZip.text!
])
//later use this key to set Status node
Database.database().reference().child("Company").child(key).child("Status").setValue([
    "isActive": self.isActiveSwitch.isOn
])

注意:如果您要求同时同时设置ProfileStatus,则无需这样做。

Database.database().reference().child("Company").childByAutoId.setValue([
    "Profile": [
        "Name": cName.text!,
        "Address": cAddress.text!,
        "City": cCity.text!,
        "State": cState.text!,
        "Zip": cZip.text!
    ],
    "Status":[
        "isActive": self.isActiveSwitch.isOn
    ]
])