Skip to content

Commit fbadeda

Browse files
committed
Merge branch 'master' of github.com:fullstackreact/react-native-firestack
* 'master' of github.com:fullstackreact/react-native-firestack: Change asset upload to use data rather than file
2 parents fa3c504 + 58e7338 commit fbadeda

File tree

1 file changed

+19
-28
lines changed

1 file changed

+19
-28
lines changed

ios/Firestack/FirestackStorage.m

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -53,45 +53,36 @@ @implementation FirestackStorage
5353
return callback(@[err]);
5454
}
5555

56+
FIRStorageReference *storageRef = [[FIRStorage storage] referenceForURL:urlStr];
57+
FIRStorageReference *uploadRef = [storageRef child:name];
58+
FIRStorageMetadata *firmetadata = [[FIRStorageMetadata alloc] initWithDictionary:metadata];
59+
5660
if ([path hasPrefix:@"assets-library://"]) {
5761
NSURL *localFile = [[NSURL alloc] initWithString:path];
5862
PHFetchResult* assets = [PHAsset fetchAssetsWithALAssetURLs:@[localFile] options:nil];
5963
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+
}];
7072
} 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];
7376

74-
[self performUpload:urlStr
75-
name:name
76-
file:localFile
77-
metadata:firmetadata
78-
callback:callback];
77+
[self addUploadObservers:uploadTask
78+
callback:callback];
7979
}
8080

8181
}
8282

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
8885
{
89-
FIRStorageReference *storageRef = [[FIRStorage storage] referenceForURL:urlStr];
90-
FIRStorageReference *uploadRef = [storageRef child:name];
91-
92-
FIRStorageUploadTask *uploadTask = [uploadRef putFile:imageFile
93-
metadata:firmetadata];
94-
9586
// Listen for state changes, errors, and completion of the upload.
9687
[uploadTask observeStatus:FIRStorageTaskStatusResume handler:^(FIRStorageTaskSnapshot *snapshot) {
9788
// Upload resumed, also fires when the upload starts

0 commit comments

Comments
 (0)