当我的应用程序进入后台时,applicationDidEnterBackground会被正确调用(显然),但是Firebase中的saveData方法要等到应用程序回到前台后才能完成(这意味着如果用户关闭应用程序,则数据保存)。
var data = User.sharedInstance.dictionary
let firestoreId: String = (data["externalId"]! as! String).firestoreId()
data.removeValue(forKey: "externalId")
// CALLED UP TIL HERE WHEN APP ENTERS BACKGROUND
Firestore.firestore().collection("users").document(firestoreId).setData(data, merge: true) { (err) in
// NOT CALLED UNTIL APP ENTERS FOREGROUND AGAIN
if let err = err {
print(err.localizedDescription)
return
}
}