मैं फायरबेस दस्तावेज़ पढ़ रहा हूं और यह बहुत ही असीमित कोड है जिसका प्रयोग किया जाता है। मैं जानना चाहता था कि क्या फ़ायरबेस कॉलबैक में त्रुटियों को फेंक रहा है और/या त्रुटि डेटा गुजर रहा है। जहां तक मैं कह सकता हूं, दस्तावेज़ीकरण इसका कोई उल्लेख नहीं करता है। सलाह के लिए अग्रिम धन्यवादफ़ायरबेस का उपयोग करके आप प्रभावी ढंग से त्रुटियों को कैसे संभाल सकते हैं या कैसे कर सकते हैं?
उत्तर
फ़ायरबेस इस समय डेवलपर-उपभोग योग्य त्रुटियों का उत्पादन नहीं करता है (बाहरी इनपुट के लिए फेंकने वाले अपवादों के बाहर)। वर्तमान में फायरबेस ऑपरेशन या तो सफल होने या घटनाओं को ट्रिगर करने की गारंटी नहीं है। नेटवर्क कनेक्टिविटी के मुद्दों के मामले में, फायरबेस बस घटनाओं को ट्रिगर नहीं करेगा। यह व्यवहार की अपेक्षा की जाती है, क्योंकि फ़ायरबेस को ऑफ़लाइन मोड में काम करने के लिए डिज़ाइन किया गया है, और कनेक्शन को दोबारा स्थापित करने के बाद यह आपको स्वचालित रूप से गति में लाएगा।
ध्यान दें कि भविष्य में हम सुरक्षा उल्लंघनों और संभवतः अन्य त्रुटि प्रकारों के लिए त्रुटियां फेंक देंगे। इन त्रुटियों को पकड़ने और संभालने के लिए API अभी तक लिखा नहीं गया है।
आपको एक एथ फ़ंक्शन बनाने की आवश्यकता है जो त्रुटियों को संभालती है। एक महान उदाहरण के लिए नीचे jsFiddle देखें।
function initAuth(ref) {
return new FirebaseSimpleLogin(ref, function (err, user) {
// if there is an error then display it
if (err) {
displayError(err);
} else if (user) {
// we only want to log people in through the email/password provider
if(user.provider !== 'password') {
auth.logout();
}
else {
// logged in!
uid = user.uid;
// save the user to our firebase
ref.child(user.uid).set({
id: user.id,
uid: user.uid,
email: user.email
});
// switch over the the user info screen
switchView('userInfo');
}
} else {
// logged out!
console.log('not logged in');
}
});
}
ठीक है, तो उपयोगकर्ता इनपुट के साथ घोषणाओं के आसपास पकड़ने की कोशिश ... मैं लगता है कि मैं एक असफल आपरेशन (कि एक त्रुटि उठाना नहीं है) एक निश्चित राशि के बाद समय समाप्त करने के लिए बंद भेजने संभाल कर सकते हैं समय - कितना समय होना चाहिए मैं वास्तव में यकीन नहीं कर रहा हूँ ... – Reinsbrain