排查错误
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本部分介绍如何处理错误。
处理 update_mask 错误
当 GMTDDeliveryVehicleReporter
发送车辆更新时,如果 updateMask
查询参数为空,则可能会发生 update_mask
错误。为防止此错误,请务必提供至少一个字段名称。这种情况通常发生在启动后的首次更新中。如需详细了解如何在 Fleet Engine 中更新车辆字段,请参阅更新车辆字段。
以下示例展示了如何处理此错误:
Swift
import GoogleRidesharingDriver
class VehicleReporterListener: NSObject, GMTDVehicleReporterListener {
func vehicleReporter(
_ vehicleReporter: GMTDVehicleReporter,
didFail vehicleUpdate: GMTDVehicleUpdate,
withError error: Error
) {
let fullError = error as NSError
if let innerError = fullError.userInfo[NSUnderlyingErrorKey] as? NSError {
let innerFullError = innerError as NSError
if innerFullError.localizedDescription.contains("update_mask cannot be empty") {
emptyMaskUpdates += 1
return
}
}
failedUpdates += 1
}
override init() {
emptyMaskUpdates = 0
failedUpdates = 0
}
}
Objective-C
#import "VehicleReporterListener.h"
#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
@implementation VehicleReporterListener {
NSInteger emptyMaskUpdates = 0;
NSInteger failedUpdates = 0;
}
- (void)vehicleReporter:(GMTDVehicleReporter *)vehicleReporter
didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate
withError:(NSError *)error {
for (NSError *underlyingError in error.underlyingErrors) {
if ([underlyingError.localizedDescription containsString:@"update_mask cannot be empty"]) {
emptyMaskUpdates += 1;
return;
}
}
failedUpdates += 1
}
@end
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-31。
[null,null,["最后更新时间 (UTC):2025-08-31。"],[[["\u003cp\u003eThis section explains how to manage \u003ccode\u003eupdate_mask\u003c/code\u003e errors, which happen when the \u003ccode\u003eupdateMask\u003c/code\u003e query parameter is empty during vehicle updates by \u003ccode\u003eGMTDDeliveryVehicleReporter\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTo avoid the \u003ccode\u003eupdate_mask\u003c/code\u003e error, ensure to always include at least one field name in the \u003ccode\u003eupdateMask\u003c/code\u003e parameter, especially during the initial update after startup.\u003c/p\u003e\n"],["\u003cp\u003eCode examples in Swift and Objective-C demonstrate how to detect and handle the \u003ccode\u003eupdate_mask\u003c/code\u003e error within your application's vehicle reporter listener implementation.\u003c/p\u003e\n"]]],[],null,["# Troubleshoot errors\n\nThis section describes how to handle errors.\n\nHandle update_mask errors\n-------------------------\n\nWhen `GMTDDeliveryVehicleReporter` sends a vehicle update, an `update_mask`\nerror can occur when the [`updateMask`](/maps/documentation/mobility/fleet-engine/reference/tasks/rest/v1/providers.deliveryVehicles/patch#body.QUERY_PARAMETERS.update_mask) query parameter is empty. To prevent\nthis error, always provide at least one field name. It typically occurs for the\nfirst update after startup. For more information about updating vehicle fields\nin Fleet Engine, see [Update vehicle fields](/maps/documentation/mobility/fleet-engine/essentials/vehicles/scheduled-tasks-vehicle-fields).\n\nThe following example shows how to handle this error: \n\n### Swift\n\n import GoogleRidesharingDriver\n\n class VehicleReporterListener: NSObject, GMTDVehicleReporterListener {\n func vehicleReporter(\n _ vehicleReporter: GMTDVehicleReporter,\n didFail vehicleUpdate: GMTDVehicleUpdate,\n withError error: Error\n ) {\n let fullError = error as NSError\n if let innerError = fullError.userInfo[NSUnderlyingErrorKey] as? NSError {\n let innerFullError = innerError as NSError\n if innerFullError.localizedDescription.contains(\"update_mask cannot be empty\") {\n emptyMaskUpdates += 1\n return\n }\n }\n failedUpdates += 1\n }\n\n override init() {\n emptyMaskUpdates = 0\n failedUpdates = 0\n }\n }\n\n### Objective-C\n\n #import \"VehicleReporterListener.h\"\n #import \u003cGoogleRidesharingDriver/GoogleRidesharingDriver.h\u003e\n\n @implementation VehicleReporterListener {\n NSInteger emptyMaskUpdates = 0;\n NSInteger failedUpdates = 0;\n }\n\n - (void)vehicleReporter:(GMTDVehicleReporter *)vehicleReporter\n didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate\n withError:(NSError *)error {\n for (NSError *underlyingError in error.underlyingErrors) {\n if ([underlyingError.localizedDescription containsString:@\"update_mask cannot be empty\"]) {\n emptyMaskUpdates += 1;\n return;\n }\n }\n failedUpdates += 1\n }\n\n @end"]]