פתרון בעיות במקרה של שגיאות

בקטע הזה מתואר איך לטפל בשגיאות.

טיפול בשגיאות update_mask

כשנשלח עדכון רכב מ-GMTDDeliveryVehicleReporter, update_mask יכולה להופיע כשפרמטר השאילתה updateMask ריק. כדי למנוע השגיאה הזו, צריך לציין תמיד לפחות שם אחד של שדה. היא בדרך כלל מתרחשת העדכון הראשון לאחר ההפעלה. מידע נוסף על עדכון שדות הרכב ב-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