使用Firebase 3.x的SetValue完成阻止

sen*_*nty 3 ios firebase completionhandler swift firebase-realtime-database

在Firebase 2.5.1中,这有效:

let post1Ref = sendRequestRef.childByAutoId()
post1Ref.setValue(request, withCompletionBlock: {( error:NSError?, ref:Firebase!) in

})
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何在3.x中实现它(因为完成的文档并没有真正告诉它)

let post1Ref = sendRequestRef.childByAutoId()
post1Ref.setValue(request, withCompletionBlock: {( error:NSError?, ref:Firebase!) in
    if (error != nil) {
       print("ERROR")
    } else {
       print("Success")
    }
})
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

使用未解决的Firebase

使用Firebase 3.x处理完成块的正确方法是什么?

Shu*_*ank 22

使用

ref.setValue(object) { (error, ref) -> Void in

}
Run Code Online (Sandbox Code Playgroud)

这里ref是FIRDatabaseReference

  • 如何在这段代码中使用try catch语句? (2认同)