Błędy związane z pakietami SDK dla klientów indywidualnych

Pakiet SDK Consumer SDK wysyła do aplikacji konsumenta błędy aktualizacji podróży za pomocą mechanizmu wywołania zwrotnego. Parametr wywołania zwrotnego to specyficzny dla danej platformy typ zwracany (TripUpdateError na Androidzie i NSError na iOS).

Wyodrębnianie kodów stanu

Błędy przekazywane do wywołania zwrotnego są zwykle błędami gRPC, ale można też wyodrębnić z nich dodatkowe informacje w postaci kodu stanu. Pełną listę kodów stanu znajdziesz w sekcji Kody stanu i ich użycie w gRPC.

Java

Możesz wyodrębnić kod stanu gRPC, który zawiera szczegółowe informacje o błędzie z TripUpdateError zwróconego przez onTripUpdateError().

// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
  Status.Code code = error.getStatusCode();
}

Kotlin

Możesz wyodrębnić kod stanu gRPC, który zawiera szczegółowe informacje o błędzie z TripUpdateError zwróconego przez onTripUpdateError().

// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
  val code = error.getStatusCode()
}

Swift

Urządzenie NSError zostanie odwołane za tripModel(_:didFailUpdateTripWithError:).

// Called when there is a trip update error.
func tripModel(_ tripModel: GMTCTripModel, didFailUpdateTripWithError error: Error?) {
  // Check to see if the error comes from gRPC.
  if let error = error as NSError?, error.domain == "io.grpc" {
    let gRPCErrorCode = error.code
    ...
  }
}

Objective-C

Urządzenie NSError zostanie odwołane za tripModel:didFailUpdateTripWithError:.

// Called when there is a trip update error.
- (void)tripModel:(GMTCTripModel *)tripModel didFailUpdateTripWithError:(NSError *)error {
  // Check to see if the error comes from gRPC.
  if ([error.domain isEqualToString:@"io.grpc"]) {
    NSInteger gRPCErrorCode = error.code;
    ...
  }
}

Interpretowanie kodów stanu

Kody stanu obejmują 2 rodzaje błędów: błędy związane z serwerem i siecią oraz błędy po stronie klienta.

Błędy serwera i sieci

Poniższe kody stanu wskazują błędy sieci lub serwera. Nie musisz nic robić, aby je naprawić. Pakiet SDK Consumer SDK automatycznie pobiera z nich dane.

Kod stanuOpis
PRZERWANE Serwer przestał wysyłać odpowiedź. Zwykle jest to spowodowane problemem z serwerem.
ANULOWANY Serwer zakończył odpowiedź wychodzącą. Zwykle dzieje się tak, gdy
aplikacja jest wysyłana w tle lub gdy zmienia się stan w aplikacji
Consumer.
PRZERWIONO
PRZEKROCZONO_TERMIN Serwer potrzebował zbyt wiele czasu na odpowiedź.
PRODUKT NIEDOSTĘPNY Serwer był niedostępny. Zwykle jest to spowodowane problemem z siecią.

Błędy klienta

Poniższe kody stanu dotyczą błędów klienta. Musisz podjąć działania, aby je naprawić. Pakiet SDK Consumer SDK będzie ponawiał próby odświeżania trasy, dopóki nie zakończysz udostępniania ścieżki, ale nie wróci do niej, dopóki nie podejmiesz odpowiednich działań.

Kod stanuOpis
NIEPRAWIDŁOWY_ARG Aplikacja konsumenta określiła nieprawidłową nazwę podróży. Nazwa podróży musi mieć format providers/{provider_id}/trips/{trip_id}.
NIE ZNALEZIONO Podróż nigdy nie została utworzona.
UPRAWNIENIA_ODRZUCONO Aplikacja dla klientów indywidualnych nie ma wystarczających uprawnień. Ten błąd występuje, gdy:
  • Aplikacja dla klientów indywidualnych nie ma uprawnień
  • Pakiet SDK dla konsumentów nie został włączony w projekcie w konsoli Google Cloud.
  • Brakuje tokena JWT lub jest on nieprawidłowy.
  • Token JWT jest podpisany identyfikatorem podróży, który nie pasuje do żądanej podróży.
MATERIAŁY WYKRYWANE Limit zasobów wynosi zero lub prędkość przepływu ruchu przekracza ograniczenie.
NIE UWIERZYTELNIOWA Żądanie nie powiodło się z powodu nieprawidłowego tokena JWT. Ten błąd występuje, gdy token JWT został podpisany bez identyfikatora podróży lub token JWT wygasł.