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

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

Wyodrębnianie kodów stanu

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

Java

Możesz wyodrębnić kod stanu gRPC, który zawiera szczegóły błędu 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óły błędu 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 jest wywoływane ponownie 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 jest wywoływane ponownie 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 serwera i sieci oraz błędy po stronie klienta.

Błędy serwera i sieci

Podane niżej kody stanu wskazują błędy sieci lub serwera i nie musisz nic robić, aby je naprawić. Pakiet SDK Consumer SDK automatycznie odzyskuje dane z tych danych.

Kod stanuOpis
PRZERWONE Serwer przestał wysyłać odpowiedź. Zwykle wynika to z problemu z serwerem.
ANULOWANY Serwer zakończył wychodzącą odpowiedź. Zwykle dzieje się tak, gdy
aplikacja jest wysyłana w tle lub gdy zmienia się stan w aplikacji
dla klientów indywidualnych.
PRZERWA
DEADLINE_EXCEEDED Serwer potrzebował zbyt wiele czasu na odpowiedź.
UNAVAILABLE Serwer był niedostępny. Zwykle wynika to z problemu z siecią.

Błędy klienta

Poniższe kody stanu wskazują błędy klienta i musisz podjąć działania, aby je naprawić. Pakiet SDK klienta będzie ponawiać próby odświeżania podróży, dopóki nie zakończysz udostępniania ścieżki, ale nie przywrócimy działania, dopóki nie wykonasz określonego działania.

Kod stanuOpis
INVALID_ARGUMENT Aplikacja konsumenta podała nieprawidłową nazwę podróży. Nazwa podróży musi mieć format providers/{provider_id}/trips/{trip_id}.
NOT_FOUND Podróż nigdy nie została utworzona.
PERMISSION_DENIED Aplikacja Consumer nie ma wystarczających uprawnień. Ten błąd występuje, gdy:
  • Aplikacja Consumer nie ma uprawnień
  • Pakiet SDK klienta 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.
RESOURCE_EXHAUSTED Limit zasobów wynosi zero lub prędkość przepływu przekracza ograniczenie.
NIEUWIERZYTELNIONE Żądanie nie powiodło się z powodu nieprawidłowego tokena JWT. Ten błąd występuje, gdy token JWT zostanie podpisany bez identyfikatora podróży lub token JWT wygasł.