0
完了したらオブジェクトを保存し、autoId
の子を同じオブジェクトに追加する必要があります。私は現在、最初のオブジェクトを保存していて、ループ内でautoId
の子を追加しています。これを行うより効果的な方法があるかどうか疑問に思っていましたか?firebase childByAutoId()を使用して複数の子を保存する方法
let data: [String: Any] = [
"one": 1,
"two": 2,
"aboutS": "yeeah",
]
//Data to be saved with auto id after inital data saved
let mediaMetaData: [[String: Any]] = [
["path": "nda.mov", "type": "009"],
["path": "nda.mov", "type": "009"]
]
ref.getUserSkillDatabasePath(authUser).childByAutoId().setValue(data, withCompletionBlock: {
error, dbReference in
if error != nil {
print(error as Any)
}
let mediaUploadGroup = DispatchGroup()
//Loop through mediaMetaData and save children using auto id
// Wish to save all children with auto id objects at once?
mediaMetaData.forEach {
meta in
mediaUploadGroup.enter()
dbReference.child("media").childByAutoId().setValue(meta, withCompletionBlock: {_,_ in
mediaUploadGroup.leave()
})
}
mediaUploadGroup.notify(queue: .main, execute: {
completion(error)
})
})
もっと良い解決策です。ご協力いただきありがとうございます – kye