如何在后台设置Firebase实时数据库的价值?

时间:2017-01-10 10:15:44

标签: ios swift firebase firebase-realtime-database

我在后台调用setValue(),如下所示:

    ResponseEntity<String> rsp = restTemplate
            .postForEntity(url, new HttpEntity<>(xml, HEADERS), String.class);

String responseBody = (String)rsp.getBody();

 Object response=mapper.readValue(responseBody, Class.forName(responseClass))   

但完成块从未调用过。在后台上传数据是不可能的吗?

2 个答案:

答案 0 :(得分:0)

Apple允许在后台调用很少的功能

  1. 麦克风
  2. 位置更新
  3. 蓝牙配件
  4. 网络电话

答案 1 :(得分:0)

keepSynced(true)为我做了诀窍,只需添加到您的代码中

let semaphore: DispatchSemaphore = DispatchSemaphore(value: 0)
let ref = FIRDatabase.database().reference().child("data")
let data: NSDictionary = [
    "test" : "test"
]
ref.keepSynced(true)
ref.setValue(data, withCompletionBlock:{
    (error, reference) in
    if error != nil {
        print(error!)
    } else {
        print("success")
        semaphore.signal()  
    }
})
_ = semaphore.wait(timeout: .distantFuture)
completionHandler(.newData)