उपभोक्ता 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 | उपभोक्ता ऐप्लिकेशन के पास ज़रूरी अनुमतियां नहीं हैं. यह गड़बड़ी तब होती है, जब:
|
RESOURCE_EXHAUSTED | संसाधन का कोटा शून्य है या ट्रैफ़िक के फ़्लो की दर, रफ़्तार की सीमा से ज़्यादा है. |
पुष्टि नहीं की गई | अमान्य JWT टोकन के कारण अनुरोध प्रमाणीकरण विफल रहा. यह गड़बड़ी तब होती है, जब JWT टोकन को बिना किसी ट्रिप आईडी के साइन किया जाता है या जब JWT टोकन की समयसीमा खत्म हो जाती है. |