|
|
@@ -128,7 +128,6 @@ import Foundation
|
|
|
putMetadata.name = (path as NSString).lastPathComponent as String
|
|
|
}
|
|
|
let task = StorageUploadTask(reference: self,
|
|
|
- service: storage.fetcherServiceForApp,
|
|
|
queue: storage.dispatchQueue,
|
|
|
data: uploadData,
|
|
|
metadata: putMetadata)
|
|
|
@@ -175,7 +174,6 @@ import Foundation
|
|
|
putMetadata.name = (path as NSString).lastPathComponent as String
|
|
|
}
|
|
|
let task = StorageUploadTask(reference: self,
|
|
|
- service: storage.fetcherServiceForApp,
|
|
|
queue: storage.dispatchQueue,
|
|
|
file: fileURL,
|
|
|
metadata: putMetadata)
|
|
|
@@ -199,9 +197,7 @@ import Foundation
|
|
|
@objc(dataWithMaxSize:completion:) @discardableResult
|
|
|
open func getData(maxSize: Int64,
|
|
|
completion: @escaping ((_: Data?, _: Error?) -> Void)) -> StorageDownloadTask {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
let task = StorageDownloadTask(reference: self,
|
|
|
- service: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
file: nil)
|
|
|
|
|
|
@@ -240,9 +236,7 @@ import Foundation
|
|
|
/// or an error on failure.
|
|
|
@objc(downloadURLWithCompletion:)
|
|
|
open func downloadURL(completion: @escaping ((_: URL?, _: Error?) -> Void)) {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
StorageGetDownloadURLTask.getDownloadURLTask(reference: self,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
completion: completion)
|
|
|
}
|
|
|
@@ -252,7 +246,6 @@ import Foundation
|
|
|
/// in the Firebase Console.
|
|
|
/// - Throws: An error if the download URL could not be retrieved.
|
|
|
/// - Returns: The URL on success.
|
|
|
- @available(iOS 13, tvOS 13, macOS 10.15, watchOS 8, *)
|
|
|
open func downloadURL() async throws -> URL {
|
|
|
return try await withCheckedThrowingContinuation { continuation in
|
|
|
self.downloadURL { result in
|
|
|
@@ -280,9 +273,7 @@ import Foundation
|
|
|
@objc(writeToFile:completion:) @discardableResult
|
|
|
open func write(toFile fileURL: URL,
|
|
|
completion: ((_: URL?, _: Error?) -> Void)?) -> StorageDownloadTask {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
let task = StorageDownloadTask(reference: self,
|
|
|
- service: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
file: fileURL)
|
|
|
|
|
|
@@ -322,7 +313,6 @@ import Foundation
|
|
|
/// the current `StorageReference`.
|
|
|
@objc(listAllWithCompletion:)
|
|
|
open func listAll(completion: @escaping ((_: StorageListResult?, _: Error?) -> Void)) {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
var prefixes = [StorageReference]()
|
|
|
var items = [StorageReference]()
|
|
|
|
|
|
@@ -343,7 +333,6 @@ import Foundation
|
|
|
|
|
|
if let pageToken = listResult.pageToken {
|
|
|
StorageListTask.listTask(reference: strongSelf,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: strongSelf.storage.dispatchQueue,
|
|
|
pageSize: nil,
|
|
|
previousPageToken: pageToken,
|
|
|
@@ -358,7 +347,6 @@ import Foundation
|
|
|
}
|
|
|
|
|
|
StorageListTask.listTask(reference: self,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
pageSize: nil,
|
|
|
previousPageToken: nil,
|
|
|
@@ -372,7 +360,6 @@ import Foundation
|
|
|
/// `listAll()` is only available for projects using Firebase Rules Version 2.
|
|
|
/// - Throws: An error if the list operation failed.
|
|
|
/// - Returns: All items and prefixes under the current `StorageReference`.
|
|
|
- @available(iOS 13, tvOS 13, macOS 10.15, watchOS 8, *)
|
|
|
open func listAll() async throws -> StorageListResult {
|
|
|
return try await withCheckedThrowingContinuation { continuation in
|
|
|
self.listAll { result in
|
|
|
@@ -401,9 +388,7 @@ import Foundation
|
|
|
message: "Argument 'maxResults' must be between 1 and 1000 inclusive."
|
|
|
))
|
|
|
} else {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
StorageListTask.listTask(reference: self,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
pageSize: maxResults,
|
|
|
previousPageToken: nil,
|
|
|
@@ -436,9 +421,7 @@ import Foundation
|
|
|
message: "Argument 'maxResults' must be between 1 and 1000 inclusive."
|
|
|
))
|
|
|
} else {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
StorageListTask.listTask(reference: self,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
pageSize: maxResults,
|
|
|
previousPageToken: pageToken,
|
|
|
@@ -453,9 +436,7 @@ import Foundation
|
|
|
/// or an error on failure.
|
|
|
@objc(metadataWithCompletion:)
|
|
|
open func getMetadata(completion: @escaping ((_: StorageMetadata?, _: Error?) -> Void)) {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
StorageGetMetadataTask.getMetadataTask(reference: self,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
completion: completion)
|
|
|
}
|
|
|
@@ -463,7 +444,6 @@ import Foundation
|
|
|
/// Retrieves metadata associated with an object at the current path.
|
|
|
/// - Throws: An error if the object metadata could not be retrieved.
|
|
|
/// - Returns: The object metadata on success.
|
|
|
- @available(iOS 13, tvOS 13, macOS 10.15, watchOS 8, *)
|
|
|
open func getMetadata() async throws -> StorageMetadata {
|
|
|
return try await withCheckedThrowingContinuation { continuation in
|
|
|
self.getMetadata { result in
|
|
|
@@ -480,9 +460,7 @@ import Foundation
|
|
|
@objc(updateMetadata:completion:)
|
|
|
open func updateMetadata(_ metadata: StorageMetadata,
|
|
|
completion: ((_: StorageMetadata?, _: Error?) -> Void)?) {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
StorageUpdateMetadataTask.updateMetadataTask(reference: self,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
metadata: metadata,
|
|
|
completion: completion)
|
|
|
@@ -492,7 +470,6 @@ import Foundation
|
|
|
/// - Parameter metadata: A `StorageMetadata` object with the metadata to update.
|
|
|
/// - Throws: An error if the metadata update operation failed.
|
|
|
/// - Returns: The object metadata on success.
|
|
|
- @available(iOS 13, tvOS 13, macOS 10.15, watchOS 8, *)
|
|
|
open func updateMetadata(_ metadata: StorageMetadata) async throws -> StorageMetadata {
|
|
|
return try await withCheckedThrowingContinuation { continuation in
|
|
|
self.updateMetadata(metadata) { result in
|
|
|
@@ -507,21 +484,18 @@ import Foundation
|
|
|
/// - Parameter completion: A completion block which returns a nonnull error on failure.
|
|
|
@objc(deleteWithCompletion:)
|
|
|
open func delete(completion: ((_: Error?) -> Void)?) {
|
|
|
- let fetcherService = storage.fetcherServiceForApp
|
|
|
let completionWrap = { (_: Data?, error: Error?) in
|
|
|
if let completion {
|
|
|
completion(error)
|
|
|
}
|
|
|
}
|
|
|
StorageDeleteTask.deleteTask(reference: self,
|
|
|
- fetcherService: fetcherService,
|
|
|
queue: storage.dispatchQueue,
|
|
|
completion: completionWrap)
|
|
|
}
|
|
|
|
|
|
/// Deletes the object at the current path.
|
|
|
/// - Throws: An error if the delete operation failed.
|
|
|
- @available(iOS 13, tvOS 13, macOS 10.15, watchOS 8, *)
|
|
|
open func delete() async throws {
|
|
|
return try await withCheckedThrowingContinuation { continuation in
|
|
|
self.delete { error in
|
|
|
@@ -590,7 +564,7 @@ import Foundation
|
|
|
completion: ((_: StorageMetadata?, _: Error?) -> Void)?) {
|
|
|
if let completion {
|
|
|
task.completionMetadata = completion
|
|
|
- let callbackQueue = storage.fetcherServiceForApp.callbackQueue ?? DispatchQueue.main
|
|
|
+ let callbackQueue = storage.callbackQueue
|
|
|
|
|
|
task.observe(.success) { snapshot in
|
|
|
callbackQueue.async {
|