所以我导入PromiseKit然后尝试
FIRDatabase.database().reference().child("somechild").removeValue().then {
/////
}
显然,这不起作用,我想知道我还缺少什么使得承诺与Firebase一起使用,如果它甚至可能的话.我想要完成的是使用单个catch方法一次删除四个Firebase引用.
使用nodeJs,我很容易使用:
Promise.all ([
someRef.remove(),
someRef.remove(),
someRef.remove(),
someRef.remove()
]).then (function({
}).catch({
//handle error
})
有没有办法在Swift中实现这一点?
最佳答案 您可以使用履行和拒绝来包装Firebase功能
/// Get chat IDs of user conversations
///
/// - Returns: array of user chat IDs
private func getUserChatIds() -> Promise<[String]> {
return Promise { fulfill, reject in
let userChatIDsRef = Database.database().reference()
.child(FireDatabasePaths.UserInfoPath.rawValue)
.child(userID).child("chatIDs")
userChatIDsRef.observe(.childAdded, with: { snapshot in
if let chatIDdic = snapshot.value as? [String: AnyObject] {
let keys = Array(chatIDdic.keys)
fulfill(keys)
} else {
reject(FirebaseError.empty)
}
})
}
}