当用户终止应用时,如何将图像上传到Firebase存储?
这是我的代码:
firebaseRef.child("\(uid)/\(filePath)").put(data, metadata: metadata) { (metadata, error) in
// NOTE: This spot never reaches when user closes the app
if error != nil || metadata == nil {
log.error("Fail to store image in cloud storage")
} else {
// Do something with the metadata url
}
如您所见,如果用户终止应用并且我无法将用户的图像上传到Firebase存储,则异步完成功能块永远不会完成
如何防止用户在上传图片后终止应用?我有一个初步的想法。我可以暂时将图片存储在CoreData
/ NSUserDefaults
中,并在用户再次打开应用时重试上传吗?
答案 0 :(得分:1)
好问题。目前,在iOS上,如果应用程序背景或被杀,则无法继续并重新启动上载或下载。此功能exists on Android(因为活动在屏幕轮换时重置,这是一个更常见的问题),我们计划将来在iOS上提供。
最终,我们希望简单地将其设为[FIRStorage enablePersistentUploads:YES]
或类似标志,以便自动为您执行此操作,因此您根本不必考虑它。