@@ -53,45 +53,36 @@ @implementation FirestackStorage
53
53
return callback (@[err]);
54
54
}
55
55
56
+ FIRStorageReference *storageRef = [[FIRStorage storage ] referenceForURL: urlStr];
57
+ FIRStorageReference *uploadRef = [storageRef child: name];
58
+ FIRStorageMetadata *firmetadata = [[FIRStorageMetadata alloc ] initWithDictionary: metadata];
59
+
56
60
if ([path hasPrefix: @" assets-library://" ]) {
57
61
NSURL *localFile = [[NSURL alloc ] initWithString: path];
58
62
PHFetchResult* assets = [PHAsset fetchAssetsWithALAssetURLs: @[localFile] options: nil ];
59
63
PHAsset *asset = [assets firstObject ];
60
- [asset requestContentEditingInputWithOptions: nil
61
- completionHandler: ^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {
62
- NSURL *imageFile = contentEditingInput.fullSizeImageURL ;
63
-
64
- [self performUpload: urlStr
65
- name: name
66
- file: imageFile
67
- metadata: nil
68
- callback: callback];
69
- }];
64
+ [[PHImageManager defaultManager ] requestImageDataForAsset: asset
65
+ options: nil
66
+ resultHandler: ^(NSData * imageData, NSString * dataUTI, UIImageOrientation orientation, NSDictionary * info) {
67
+ FIRStorageUploadTask *uploadTask = [uploadRef putData: imageData
68
+ metadata: firmetadata];
69
+ [self addUploadObservers: uploadTask
70
+ callback: callback];
71
+ }];
70
72
} else {
71
- NSURL *localFile = [NSURL fileURLWithPath: path];
72
- FIRStorageMetadata *firmetadata = [[FIRStorageMetadata alloc ] initWithDictionary: metadata];
73
+ NSURL *imageFile = [NSURL fileURLWithPath: path];
74
+ FIRStorageUploadTask *uploadTask = [uploadRef putFile: imageFile
75
+ metadata: firmetadata];
73
76
74
- [self performUpload: urlStr
75
- name: name
76
- file: localFile
77
- metadata: firmetadata
78
- callback: callback];
77
+ [self addUploadObservers: uploadTask
78
+ callback: callback];
79
79
}
80
80
81
81
}
82
82
83
- - (void ) performUpload : (NSString *) urlStr
84
- name : (NSString *) name
85
- file : (NSURL *) imageFile
86
- metadata : (FIRStorageMetadata *) firmetadata
87
- callback : (RCTResponseSenderBlock) callback
83
+ - (void ) addUploadObservers : (FIRStorageUploadTask *) uploadTask
84
+ callback : (RCTResponseSenderBlock) callback
88
85
{
89
- FIRStorageReference *storageRef = [[FIRStorage storage ] referenceForURL: urlStr];
90
- FIRStorageReference *uploadRef = [storageRef child: name];
91
-
92
- FIRStorageUploadTask *uploadTask = [uploadRef putFile: imageFile
93
- metadata: firmetadata];
94
-
95
86
// Listen for state changes, errors, and completion of the upload.
96
87
[uploadTask observeStatus: FIRStorageTaskStatusResume handler: ^(FIRStorageTaskSnapshot *snapshot) {
97
88
// Upload resumed, also fires when the upload starts
0 commit comments