如何用cloud_functions包捕获Flutter的云函数onCall functions.https.Https



我使用的是Flutter cloud_functions包和cloud函数。我想通过CloudFunctionsException(客户端(捕获functions.https.HttpsError。无论我故意抛出什么,我都无法通过Flutter捕获functions.https.HttpsError。

是否无法用CloudFunctionsException捕获云函数包抛出的functions.https.HttpsError?

帮帮我。

云函数

export const sampleFunctions = functions.region(REGION).https.onCall((data, context) => {
if (!data.hoge) throw new functions.https.HttpsError('failed-precondition', 'some reason');
return { response: data.fuga };
});

飞镖

Future<dynamic> sampleFunction() async {
final _cloudFunctions = CloudFunctions(region: 'asia-northeast1');
final _sampleFunctions = _cloudFunctions.getHttpsCallable(
functionName: 'sampleFunctions',
);
try {
final resp = await _sampleFunctions.call(<String, dynamic>{
'fuga': 'fuga',
});
print(resp);
} on CloudFunctionsException catch (e) {
print(e.code);
print(e.message);
}
}

Dart文档中有一个调用函数实现。如果您查看它,则只有当异常属性code == 'functionsError'时才会抛出CloudFunctionsException

对于functions.https.HttpsError,您是来自第一个参数(示例中为'failed-precondition'(的代码。不幸的是,HttpError限制了错误代码的可能值,并且"functionsError"不在列表中。

这样看来是行不通的。

我希望它会有所帮助!

相关内容

最新更新