在 HTTPS 可调用的 Firebase Cloud Functions 中,错误代码的名称是不是在 iOS 中可用?
Posted
技术标签:
【中文标题】在 HTTPS 可调用的 Firebase Cloud Functions 中,错误代码的名称是不是在 iOS 中可用?【英文标题】:In HTTPS-callable Firebase Cloud Functions, is the name of the error code available in iOS?在 HTTPS 可调用的 Firebase Cloud Functions 中,错误代码的名称是否在 iOS 中可用? 【发布时间】:2018-08-23 20:44:50 【问题描述】:我从我的云函数中抛出了这个错误(HTTPS 可调用):
throw new functions.https.HttpsError('not-found', 'User account not found')
然后,在 android 上,我可以使用
获取第一个参数('not-found')functions.getHttpsCallable("myFunc").call(data).addOnFailureListener(new OnFailureListener()
@Override
public void onFailure(@NonNull Exception e)
if(e instanceof FirebaseFunctionsException)
FirebaseFunctionsException ffe = (FirebaseFunctionsException) e;
FirebaseFunctionsException.Code code = ffe.getCode();
String errorName = code.name()
)
errorName 就是那个参数。
但在 ios 上,错误代码没有“名称”。
functions.httpsCallable("myFunc").call(data) (result, error) in
if let error = error as NSError?
if error.domain == FunctionsErrorDomain
let code = FunctionsErrorCode(rawValue: error.code)
let message = error.localizedDescription
let details = error.userInfo[FunctionsErrorDetailsKey]
我得到的只是一个 int 代码和第二个参数('找不到用户帐户')。错误名称在某处可用吗?我希望使用该名称来处理不同的错误。
【问题讨论】:
【参考方案1】:我找到了我正在寻找的枚举:
安卓:
@Override
public void onFailure(@NonNull Exception e)
FirebaseFunctionsException ffe = (FirebaseFunctionsException) e;
FirebaseFunctionsException.Code code = ffe.getCode();
if(code.equals(FirebaseFunctionsException.Code.ALREADY_EXISTS))
// handle error
iOS:
functions.httpsCallable("myFunc").call(data) (result, error) in
if let error = error as NSError?
if error.domain == FunctionsErrorDomain
let code = FunctionsErrorCode(rawValue: error.code)
if code == FunctionsErrorCode.alreadyExists
// handle error
【讨论】:
以上是关于在 HTTPS 可调用的 Firebase Cloud Functions 中,错误代码的名称是不是在 iOS 中可用?的主要内容,如果未能解决你的问题,请参考以下文章