[ios][functions] finalise implementation
This commit is contained in:
parent
d0198d98b8
commit
c5df065956
|
@ -2,6 +2,8 @@
|
|||
|
||||
#if __has_include(<FirebaseFunctions/FIRFunctions.h>)
|
||||
#import <FirebaseFunctions/FIRFunctions.h>
|
||||
#import <FirebaseFunctions/FIRHTTPSCallable.h>
|
||||
#import <FirebaseFunctions/FIRError.h>
|
||||
|
||||
@implementation RNFirebaseFunctions
|
||||
RCT_EXPORT_MODULE();
|
||||
|
@ -15,7 +17,91 @@ RCT_EXPORT_METHOD(httpsCallable:
|
|||
rejecter:
|
||||
(RCTPromiseRejectBlock) reject
|
||||
) {
|
||||
// TODO
|
||||
FIRFunctions *functions = [FIRFunctions functions];
|
||||
|
||||
[[functions HTTPSCallableWithName:name] callWithObject:[wrapper valueForKey:@"data"] completion:^(FIRHTTPSCallableResult * _Nullable result, NSError * _Nullable error) {
|
||||
if (error) {
|
||||
NSObject *details = [NSNull null];
|
||||
NSString *message = error.localizedDescription;
|
||||
if (error.domain == FIRFunctionsErrorDomain) {
|
||||
details = error.userInfo[FIRFunctionsErrorDetailsKey];
|
||||
if (details == nil) {
|
||||
details = [NSNull null];
|
||||
}
|
||||
}
|
||||
|
||||
resolve(@{
|
||||
@"__error": @true,
|
||||
@"code": [self getErrorCodeName:error],
|
||||
@"message": message,
|
||||
@"details": details
|
||||
});
|
||||
} else {
|
||||
resolve(@{ @"data": [result data] });
|
||||
}
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
- (NSString *)getErrorCodeName:(NSError *)error {
|
||||
NSString *code = @"UNKNOWN";
|
||||
switch (error.code) {
|
||||
case FIRFunctionsErrorCodeOK:
|
||||
code = @"OK";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeCancelled:
|
||||
code = @"CANCELLED";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeUnknown:
|
||||
code = @"UNKNOWN";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeInvalidArgument:
|
||||
code = @"INVALID_ARGUMENT";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeDeadlineExceeded:
|
||||
code = @"DEADLINE_EXCEEDED";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeNotFound:
|
||||
code = @"NOT_FOUND";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeAlreadyExists:
|
||||
code = @"ALREADY_EXISTS";
|
||||
break;
|
||||
case FIRFunctionsErrorCodePermissionDenied:
|
||||
code = @"PERMISSION_DENIED";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeResourceExhausted:
|
||||
code = @"RESOURCE_EXHAUSTED";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeFailedPrecondition:
|
||||
code = @"FAILED_PRECONDITION";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeAborted:
|
||||
code = @"ABORTED";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeOutOfRange:
|
||||
code = @"OUT_OF_RANGE";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeUnimplemented:
|
||||
code = @"UNIMPLEMENTED";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeInternal:
|
||||
code = @"INTERNAL";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeUnavailable:
|
||||
code = @"UNAVAILABLE";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeDataLoss:
|
||||
code = @"DATA_LOSS";
|
||||
break;
|
||||
case FIRFunctionsErrorCodeUnauthenticated:
|
||||
code = @"UNAUTHENTICATED";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue