उपभोक्ता SDK टूल से जुड़ी गड़बड़ियों को मैनेज करना

उपभोक्ता SDK टूल, कॉलबैक मैकेनिज़्म का इस्तेमाल करके उपभोक्ता ऐप्लिकेशन को यात्रा अपडेट करने से जुड़ी गड़बड़ियां भेजता है. कॉलबैक पैरामीटर, प्लैटफ़ॉर्म के हिसाब से रिटर्न होता है ( Android पर TripUpdateError और iOS पर NSError).

स्टेटस कोड एक्सट्रैक्ट करना

आम तौर पर, कॉलबैक को भेजी जाने वाली गड़बड़ियां gRPC गड़बड़ियां होती हैं और आपके पास स्टेटस कोड के तौर पर उनसे अतिरिक्त जानकारी हासिल करने का विकल्प भी होता है. स्थिति कोड की पूरी सूची देखने के लिए, gRPC में स्टेटस कोड और उनका इस्तेमाल देखें.

Java

ऐसा gRPC स्टेटस कोड एक्सट्रैक्ट किया जा सकता है जो onTripUpdateError() से लौटाए गए TripUpdateError से मिली गड़बड़ी के बारे में जानकारी देता हो.

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

Kotlin

ऐसा gRPC स्टेटस कोड एक्सट्रैक्ट किया जा सकता है जो onTripUpdateError() से लौटाए गए TripUpdateError से मिली गड़बड़ी के बारे में जानकारी देता हो.

// 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 सर्वर ने जवाब देने में बहुत ज़्यादा समय लिया.
हवा की क्वालिटी की जानकारी उपलब्ध नहीं है सर्वर उपलब्ध नहीं है. आम तौर पर, ऐसा नेटवर्क में समस्या की वजह से होता है.

क्लाइंट से जुड़ी गड़बड़ियां

यहां दिए गए स्टेटस कोड, क्लाइंट से जुड़ी गड़बड़ियों के लिए हैं. इन गड़बड़ियों को ठीक करने के लिए, आपको कार्रवाई करनी होगी. जब तक यात्रा की जानकारी शेयर करना बंद नहीं किया जाता, तब तक उपभोक्ता SDK टूल यात्रा को रीफ़्रेश करने की कोशिश करता रहता है. हालांकि, आपके कार्रवाई करने के बाद ही डेटा रिकवर नहीं होगा.

स्थिति कोडकंपनी का ब्यौरा
INVALID_ARGUMENT उपभोक्ता ऐप्लिकेशन ने यात्रा का गलत नाम दिया है; यात्रा का नाम providers/{provider_id}/trips/{trip_id} फ़ॉर्मैट के हिसाब से होना चाहिए.
NOT_FOUND यात्रा की जानकारी कभी नहीं बनाई गई.
PERMISSION_DENIED उपभोक्ता ऐप्लिकेशन के पास ज़रूरी अनुमतियां नहीं हैं. यह गड़बड़ी तब होती है, जब:
  • उपभोक्ता ऐप्लिकेशन को अनुमतियां नहीं दी गई हैं
  • Google Cloud Console में, प्रोजेक्ट के लिए उपभोक्ता SDK टूल चालू नहीं किया गया है.
  • JWT टोकन मौजूद नहीं है या अमान्य है.
  • JWT टोकन, किसी ऐसे यात्रा आईडी से साइन किया जाता है जो अनुरोध की गई यात्रा के आईडी से मेल नहीं खाता.
RESOURCE_EXHAUSTED संसाधन का कोटा शून्य है या ट्रैफ़िक के फ़्लो की दर, रफ़्तार की सीमा से ज़्यादा है.
पुष्टि नहीं की गई अमान्य JWT टोकन के कारण अनुरोध प्रमाणीकरण विफल रहा. यह गड़बड़ी तब होती है, जब JWT टोकन को बिना किसी ट्रिप आईडी के साइन किया जाता है या जब JWT टोकन की समयसीमा खत्म हो जाती है.