Firebase中的Firebase完成侦听器

时间:2016-07-04 07:35:56

标签: swift firebase firebase-realtime-database

如何在swift中为firebase执行完成侦听器?它说文档中有SetValue和UpdateValue的完成列表,但是没有例子。

3 个答案:

答案 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.")
       }  
    }