오류 문제 해결하기

이 섹션에서는 오류를 처리하는 방법을 설명합니다.

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