จัดการข้อผิดพลาด SDK ของผู้บริโภค

Consumer SDK จะส่งข้อผิดพลาดในการอัปเดตการเดินทางไปยังแอปสำหรับผู้บริโภคโดยใช้ Callback Google Analytics พารามิเตอร์ Callback เป็นประเภทการแสดงผลเฉพาะแพลตฟอร์ม ( TripUpdateError ใน Android และ NSError บน iOS)

ดึงรหัสสถานะ

ข้อผิดพลาดที่ส่งไปยัง Callback มักจะเป็นข้อผิดพลาด gRPC และคุณยัง ดึงข้อมูลเพิ่มเติมจากข้อความเหล่านี้ในรูปแบบรหัสสถานะ สำหรับ รายการรหัสสถานะทั้งหมด โปรดดู รหัสสถานะและการใช้ใน gRPC

Java

คุณดึงรหัสสถานะ gRPC ที่มีรายละเอียดเกี่ยวกับข้อผิดพลาดได้ จาก TripUpdateError คืนจาก onTripUpdateError()

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

Kotlin

คุณดึงรหัสสถานะ gRPC ที่มีรายละเอียดเกี่ยวกับข้อผิดพลาดได้ จาก TripUpdateError คืนจาก onTripUpdateError()

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

Swift

ระบบจะเรียก NSError กลับมาใน 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 กลับมาใน 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;
    ...
  }
}

ตีความรหัสสถานะ

รหัสสถานะครอบคลุมข้อผิดพลาดสองประเภท ได้แก่ ข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์และเครือข่าย และ ข้อผิดพลาดฝั่งไคลเอ็นต์

ข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์และเครือข่าย

รหัสสถานะต่อไปนี้มีไว้สำหรับข้อผิดพลาดเกี่ยวกับเครือข่ายหรือเซิร์ฟเวอร์ และคุณ ไม่จำเป็นต้องดำเนินการใดๆ เพื่อแก้ไข SDK ของผู้บริโภคโดยอัตโนมัติ การกู้คืน

รหัสสถานะคำอธิบาย
ล้มเลิกแล้ว เซิร์ฟเวอร์หยุดส่งการตอบกลับ ซึ่งโดยปกติจะเกิดจาก เซิร์ฟเวอร์มีปัญหา
ยกเลิกแล้ว เซิร์ฟเวอร์สิ้นสุดการตอบกลับขาออก โดยปกติ เกิดขึ้นเมื่อ
ส่งแอปไปที่พื้นหลัง หรือเมื่อมีการเปลี่ยนสถานะในส่วน
แอปสำหรับผู้บริโภค
ขัดข้อง
DEADLINE_EXCEEDED เซิร์ฟเวอร์ใช้เวลาตอบสนองนานเกินไป
UNAVAILABLE เซิร์ฟเวอร์ไม่พร้อมใช้งาน ซึ่งโดยปกติจะเกิดจากเครือข่าย ปัญหา

ข้อผิดพลาดของไคลเอ็นต์

รหัสสถานะต่อไปนี้มีไว้สำหรับข้อผิดพลาดของไคลเอ็นต์ และคุณต้องดำเนินการเพื่อ แก้ปัญหาเหล่านั้น Consumer SDK จะยังคงพยายามรีเฟรชการเดินทางต่อไปจนกว่าคุณจะ หยุดการแชร์เส้นทาง แต่จะไม่กู้คืนจนกว่าคุณจะดำเนินการ

รหัสสถานะคำอธิบาย
INVALID_ARGUMENT แอป Consumer ระบุชื่อการเดินทางไม่ถูกต้อง ชื่อการเดินทางต้อง ใช้รูปแบบ providers/{provider_id}/trips/{trip_id}
NOT_FOUND ไม่เคยสร้างการเดินทางนี้
PERMISSION_DENIED แอป Consumer มีสิทธิ์ไม่เพียงพอ ข้อผิดพลาดนี้เกิดขึ้นเมื่อ
  • แอป Consumer ไม่มีสิทธิ์
  • ไม่ได้เปิดใช้ SDK ของผู้บริโภคสำหรับโปรเจ็กต์ใน Google Cloud คอนโซล
  • ไม่มีโทเค็น JWT หรือไม่ถูกต้อง
  • โทเค็น JWT ลงชื่อด้วยรหัสการเดินทางที่ไม่ตรงกับ การเดินทางที่ขอ
RESOURCE_EXHAUSTED โควต้าทรัพยากรอยู่ที่ 0 หรืออัตราการไหลเวียนของการรับส่งข้อมูลเกิน ขีดจำกัดความเร็ว
ไม่มีการตรวจสอบสิทธิ์ คำขอตรวจสอบสิทธิ์ไม่สำเร็จเนื่องจากโทเค็น JWT ไม่ถูกต้อง ช่วงเวลานี้ จะเกิดขึ้นเมื่อโทเค็น JWT ลงนามโดยไม่มีรหัสการเดินทาง หรือ เมื่อโทเค็น JWT หมดอายุ