L'SDK consumer invia gli errori di aggiornamento delle corse all'app consumer utilizzando un meccanismo di callback. Il parametro di callback è un tipo di ritorno specifico della piattaforma (
TripUpdateError
su Android e
NSError
su iOS).
Estrazione dei codici di stato
Gli errori trasmessi al callback sono in genere errori gRPC, dai quali puoi anche estrarre ulteriori informazioni sotto forma di codice di stato. Per l'elenco completo dei codici di stato, consulta Codici di stato e loro utilizzo in gRPC.
Java
Puoi estrarre un codice di stato gRPC che fornisce dettagli sull'errore
dall'oggetto TripUpdateError
restituito da onTripUpdateError()
.
// Called when there is a trip update error.
@Override
public void onTripUpdateError(TripInfo tripInfo, TripUpdateError error) {
Status.Code code = error.getStatusCode();
}
Kotlin
Puoi estrarre un codice di stato gRPC che fornisce dettagli sull'errore
dall'oggetto TripUpdateError
restituito da onTripUpdateError()
.
// Called when there is a trip update error.
override fun onTripUpdateError(tripInfo: TripInfo, error: TripUpdateError) {
val code = error.getStatusCode()
}
Swift
NSError
viene richiamato tra 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
NSError
viene richiamato tra 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;
...
}
}
Interpretare i codici di stato
I codici di stato coprono due tipi di errori: errori relativi al server e alla rete ed errori lato client.
Errori del server e di rete
I seguenti codici di stato si riferiscono a errori di rete o del server e non è necessario alcun intervento da parte tua per risolverli. L'SDK consumer esegue automaticamente il ripristino.
Codice di stato | Descrizione |
---|---|
INTERROTTO | Il server ha smesso di inviare la risposta. In genere questo problema è causato da un problema del server. |
CANCELLATO | Il server ha terminato la risposta in uscita. Questo di solito accade quando l'app viene inviata in background o quando si verifica un cambiamento di stato nell'app consumer. |
INTERROTTO | |
SCADENZA_SUPERATO | Il server ha impiegato troppo tempo per rispondere. |
NON DISPONIBILE | Il server non era disponibile. In genere questo problema è causato da un problema di rete. |
Errori client
I seguenti codici di stato si riferiscono a errori del client ed è necessario intervenire per risolverli. L'SDK Consumer continuerà a eseguire i tentativi di aggiornamento del viaggio fino a quando non termini la condivisione, ma non verrà recuperato finché non intervieni.
Codice di stato | Descrizione |
---|---|
INVALID_ARGUMENT | L'app Consumer ha specificato un nome di viaggio non valido. Il nome della corsa deve
rispettare il formato providers/{provider_id}/trips/{trip_id} .
|
NON_TROVATO | Il viaggio non è mai stato creato. |
PERMISSION_DENIED | L'app consumer non ha autorizzazioni sufficienti. Questo errore si verifica quando:
|
RISORSA_ESHAUSTED | La quota di risorse è pari a zero o la velocità del flusso di traffico supera il limite di velocità. |
NON AUTENTICATA | Autenticazione della richiesta non riuscita a causa di un token JWT non valido. Questo errore si verifica quando il token JWT viene firmato senza un ID di corsa o quando è scaduto. |