我在云函数中进行了一个https调用,如果条件失败,就会抛出一个错误,在flutter中我成功地处理了它,它向我显示了以下信息:PlatformException(函数错误,云函数异常失败,{code:failed_PRECONDITION,details:null,message:error:您的卡被拒绝。}(
但我想知道如何才能让消息部分显示给用户?到目前为止,我已经尝试了e.message,但不起作用
CloudFunctions(app: Firebase.app(), region: 'asia-southeast2')
.getHttpsCallable(functionName: 'addPayment')
.call({
'paymentMethodId': paymentMethod.id,
'userid': FirebaseAuth.instance.currentUser.uid,
}).catchError((e) => print('ERROR $e'));
这是我的功能
PlatformException类具有以下属性:
-
code
→字符串错误代码。最终 -
details
→动态错误详细信息,可能为null。最终 -
hashCode
→int此对象的哈希代码。[…]只读,继承 -
message
→字符串一条可读的错误消息,可能为null。最终 -
runtimeType
→类型的运行时类型的表示形式对象只读,继承的
要处理它,您可以执行以下操作:
.catchError((e) {
if (e is PlatformException){
// Show e.details['message']
}else{
print('ERROR $e');
}
});
.catchError((error) {
String errorMessage = error.toString();
if (error is PlatformException &&
error.message != null &&
error.message!.isNotEmpty) {
errorMessage = error.message!;
}
}