Agregar varios hijos a la database Firebase con Swift

Estoy tratando de crear varios niños dentro de un niño. Actualmente puedo crear esto dentro de mi receta:

{ "RecipeData": { "recipe": { "-KjTSH4uPQ152Cr-hDok": { "name": "Cook rice", "ID": "-KjTSH4uPQ152Cr-hDok", } } } } 

Utilizando:

 let recipe: [String : Any] = ["name" : self.recipe.name, "ID" : self.recipe.key] 

La class de la receta se ve así:

 class Recipe { var name: String! var key: String init(from snapshot: FIRDataSnapshot) { let snapshotValue = snapshot.value as! [String: Any] self.name = snapshotValue["name"] as! String self.key = snapshot.key } } 

Pero ahora quiero crear otra matriz de niños que esté dentro del "método" y parezca algo así.

 { "RecipeData": { "recipe": { "-KjTSH4uPQ152Cr-hDok": { "name": "Cook rice", "ID": "-KjTSH4uPQ152Cr-hDok", "method": [ { "step 1": "instruction 1" }, { "step 2": "instruction 2" }, { "step 3": "instruction 3" } ] } } } } 

Editar:

La receta se actualiza de esta manera

 databaseRef.child("RecipeData").child("recipe").updateChildValues(recipe) 

He mirado Firebase ¿Cómo actualizar varios niños? que está escrito en javascript, pero no estoy seguro de cómo implementarlo. No dude en dejarme saber si hay mejores preguntas o ejemplos por ahí.

Puede crear varios niños dentro de un nodo tal como lo ha estado haciendo con el nodo "recipe" . Por ejemplo:

 { "RecipeData": { "recipe": { "-KjTSH4uPQ152Cr-hDok": { "name": "Cook rice", "ID": "-KjTSH4uPQ152Cr-hDok", "method": { "Step1":"instruction1", "Step2":"instruction2", "Step3":"instruction3" } } } } 

Esta es una mejor práctica ya que puede search cada paso por key. Aunque, como las keys de la database de Firebase son cadenas orderadas lexicográficamente , sería mejor practicar usar .childByAutoId() para cada paso, para asegurar que todos los pasos estén orderados y sean únicos. Sin embargo, seguiré usando "paso n " para este ejemplo.

Si necesita más información dentro de cada paso, simplemente vuelva a hacer una de las teclas de paso un nodo padre:

 { "RecipeData": { "recipe": { "-KjTSH4uPQ152Cr-hDok": { "name": "Cook rice", "ID": "-KjTSH4uPQ152Cr-hDok", "method": { "Step1": { "SpatulaRequinetworking" : true, "Temp" : 400 } } } } } 

Esto se puede lograr llamando a .set() en un dictionary de dictionarys. Por ejemplo:

 let dict: [String:AnyObject] = ["Method": ["Step1": ["SpatulaRequinetworking":true, "temp":400], ["Ste‌​p2": ["SpatulaRequire‌​d":false, "temp":500]‌​ ]] myDatabaseReference.set(dict)