में श्रोता के माध्यम से फायरबेस वर्तमान साइन-इन उपयोगकर्ता की जांच करना मैंने फेसबुक और Google के माध्यम से अपने आईओएस ऐप पर लॉगिन करने के लिए फायरबेस प्राधिकरण को कार्यान्वित किया है। मैं स्विफ्ट कोडिंग कर रहा हूँ। जब ऐप शुरू होता है तो मुझे यह देखने की आवश्यकता होती है कि उचित व्यू कंट्रोलर प्रस्तुत करने के लिए कोई उपयोगकर्ता पहले ही साइन-इन किया गया है (उदाहरण के लिए, यदि कोई साइन इन नहीं है तो मैं लॉगिन व्यू कंट्रोलर प्रस्तुत करता हूं, अन्यथा मैं होम व्यू कंट्रोलर प्रस्तुत करता हूं)। अगर मैं "आसान" समाधान Firebase द्वारा की पेशकश की है, जिसका अर्थ का उपयोगआईओएस
if FIRAuth.auth()?.currentUser != nil {
// User is signed in.
// ...
} else {
// No user is signed in.
// ...
}
तो पता चल सके कि वर्तमान उपयोगकर्ता नहीं के बराबर नहीं है, यह वास्तव में होता है क्या Firebase गाइड (https://firebase.google.com/docs/auth/ios/manage-users) अलर्ट
अर्थ हो सकता है " नोट: CurrentUser भी शून्य हो सकता है क्योंकि ऑथ ऑब्जेक्ट प्रारंभ करना समाप्त नहीं हुआ है। यदि आप उपयोगकर्ता की साइन-इन स्थिति का ट्रैक रखने के लिए श्रोता का उपयोग करते हैं, तो आपको इस मामले को संभालने की आवश्यकता नहीं है। "
तो मैं के रूप में गाइड में सुझाव दिया श्रोता को लागू करना चाहते हैं:
handle = FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
// ...
}
श्रोता इतना है कि यह जब प्रमाणीकरण वस्तु बनाई गई है शुरू हो रहा है भी मध्यवर्ती स्थिति को संभाल लेंगे। मुद्दा यह है कि मैं वास्तव में इसे ठीक से काम नहीं कर सकता। कोई उपयोगकर्ता लॉग इन करने के लिए यह देखने के लिए कोई भी इस श्रोता का उपयोग करने में मेरी सहायता कर सकता है?
धन्यवाद
पर प्रवेश करता है, तो आपने उस हैंडल को कहां रखा? और आपने हैंडल में क्या किया? –
क्या आप कृपया बता सकते हैं कि क्या काम नहीं कर रहा है? आपको संभवतः हैंडल की आवश्यकता नहीं है और यह देखने के लिए जांच कर रहा है कि क्या उपयोगकर्ता बंद होने के अंदर शून्य नहीं है, इसकी आवश्यकता है। – Jay
हाय जय। क्या काम नहीं कर रहा है वास्तव में यह तथ्य है कि वर्तमान उपयोगकर्ता शून्य है। और यह स्पष्ट है कि यह सिर्फ एक "संक्रमण" प्रभाव है क्योंकि कुछ प्रारंभ हो रहा है। यह परिदृश्य है: कोई उपयोगकर्ता लॉग इन नहीं हुआ। मैं फिर फेसबुक के साथ लॉगिन करता हूं। मैं कंसोल में क्या प्रिंट करता हूं और प्रस्तुत दृश्य नियंत्रक मुझे दो चीजों की पुष्टि करता है: फेसबुक प्रक्रिया ठीक हो गई लेकिन फायरबेस वर्तमान उपयोगकर्ता शून्य है। और, यदि मैं 20 सेकंड के बाद ऐप पर वापस जाता हूं, तो सब कुछ ठीक है, वर्तमान उपयोगकर्ता अब शून्य नहीं है। –