उपभोक्ता 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 टोकन की समयसीमा खत्म हो जाती है.