I love Firebase, but the Swift code in the iOS guide is of really low quality. For example (https://firebase.google.com/docs/database/ios/save-data#dele...):
if currentData.value != nil, let uid = FIRAuth.auth()?.currentUser?.uid {
var post = currentData.value as! [String : AnyObject]
var stars : Dictionary<String, Bool>
stars = post["stars"] as? Dictionary<String, Bool> ?? [:]
// ...
}
What this should really be: guard let post = currentData.value as? [String : AnyObject],
uid = FIRAuth.auth()?.currentUser?.uid else { return FIRTransactionResult.successWithValue(currentData) }
let stars = post["stars"] as? [String : Bool] ?? [:]
// ...
}