如何在swift中为firebase执行完成侦听器?它说文档中有SetValue和UpdateValue的完成列表,但是没有例子。
答案 0 :(得分:5)
setValue的完成在{}块(闭包)内处理。因此,一旦尝试setValue,就会执行该块中的代码。如果没有,则错误将为nil,快照将是写入的数据。
let ref = self.myRootRef.child("some_path")
ref.setValue("Hello", withCompletionBlock: { (error, snapshot) in
if error != nil {
print("oops, an error")
} else {
print("completed")
}
})
给出
的结果root_ref
some_path: Hello
并打印"已完成"
答案 1 :(得分:1)
下面给出了在firebase中使用setValue的完成处理程序的示例。同样,您可以使用方法的完成处理程序。
func saveJob(completion:(Bool)-> Void) {
FIRDatabase.database().reference().child("Job").setValue(["Title":self.title!,"Detail":self.details!], withCompletionBlock: { (error, ref) in
debugPrint("Completed")
completion(true)
})
}
答案 2 :(得分:0)
对于 Firebase 中的 setValue
,您可以编写 completion
块,如下所示:
let ref = Database.database().reference().child("somepath")
ref.setValue("value") { (error, databaseRef) in
if error != nil {
print("Error for setting value")
} else {
print("Value set successfully.")
}
}
对于 Firebase 中的 updateValue
:
let newKeyValueData:[String:Any] = ["key1":"value1", "key2":value2] as [String:Any]
ref.updateChildValues(["someKey":"value"]) { (error, dbRef) in
if error != nil {
print("Error for updating value")
} else {
print("Value updated successfully.")
}
}