我打電話的setValue()的背景是這樣的:如何在後臺爲Firebase實時數據庫設置值?
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
let semaphore: DispatchSemaphore = DispatchSemaphore(value: 0)
let ref = FIRDatabase.database().reference().child("data")
let data: NSDictionary = [
"test" : "test"
]
ref.setValue(data, withCompletionBlock:{
(error, reference) in
if error != nil {
print(error!)
} else {
print("success")
semaphore.signal()
}
})
_ = semaphore.wait(timeout: .distantFuture)
completionHandler(.newData)
}
但完成塊永遠不會被調用。在後臺上傳數據是不可能的嗎?
得到了同樣的問題。 POST請求到其他服務器在後臺工作,但Firebase什麼都不做 –