मेरे पास मेरी लॉन्चर गतिविधि के रूप में एक डिस्पैच एक्टिविटी है, जिसका अर्थ यह है कि उपयोगकर्ता ने वर्तमान में साइन इन किया है या नहीं। अगर उपयोगकर्ता साइन इन है, तो मैं उन्हें अपनी प्रोफाइल एक्टिविटी में भेजता हूं। अन्यथा, मैं उन्हें LogInActivity पर भेजता हूं।Android FirebaseAuth.getCurrentUser() कभी नल
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dispatch);
//.....................
auth = FirebaseAuth.getInstance();
authListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
launchProfileActivity();
} else {
// User is signed out
launchLoginActivity();
}
}
};
}
@Override
public void onStart() {
super.onStart();
auth.addAuthStateListener(authListener);
}
@Override
public void onStop() {
super.onStop();
if (authListener != null) {
auth.removeAuthStateListener(authListener);
}
}
कोई फर्क नहीं पड़ता कि मुझे क्या करना, firebaseAuth.getCurrentUser(), कभी नहीं अशक्त मेरी प्राथमिक परीक्षण डिवाइस पर रिटर्न: यहाँ DispatchActivity में मेरी कोड है। डॉक्स के मुताबिक, getCurrentUser() तब तक शून्य हो जाएगा जब तक कोई उपयोगकर्ता वर्तमान में साइन इन नहीं होता है। जब मैं इस उपयोगकर्ता के कुछ विवरण लॉग करता हूं, तो वे पहले से बनाए गए "टेस्ट" उपयोगकर्ता के साथ संगत होते हैं, (यानी उपयोगकर्ता.getEmail() रिटर्न "[email protected]"।
यह समस्याग्रस्त है के रूप में मैं सबसे निश्चित रूप से मेरी कंसोल के उपयोगकर्ता डेटाबेस के किसी भी उपयोगकर्ता (प्रमाणीकरण में/उपयोगकर्ता) नहीं है। मैं डेटाबेस से इस परीक्षण उपयोगकर्ता हटाया कुछ समय पहले, और डेटाबेस मैं एक और डिवाइस पर App चलाने का भी प्रयास खाली है।
, और यह ठीक से मार डाला। हालांकि, एक ताजा मेरी प्राथमिक परीक्षण डिवाइस पर स्थापित प्रदर्शन नहीं करता है टी समस्या को ठीक करें।
प्रश्न: जहां तक मैं देख सकता हूं, यह मुद्दा मेरे डिवाइस के साथ किसी प्रकार के लगातार उपयोगकर्ता स्थिति से संबंधित है; चूंकि एक अलग डिवाइस चलाना ठीक काम करता है। चूंकि मैंने जानबूझकर ऐसा करने के लिए कॉन्फ़िगर नहीं किया है, इसलिए मैं जानना चाहता हूं कि मेरे ऑथ उपयोगकर्ता डेटाबेस और डिवाइस के बीच इस असंगतता का कारण क्या है।
यदि डेटाबेस खाली है, तो auth.getCurrentUser() को पहले से हटाए गए उपयोगकर्ता ऑब्जेक्ट को कहां से प्राप्त किया जा रहा है?
धन्यवाद।
मुझे पता है कि आपने कहा है कि आपने ऐप को दोबारा इंस्टॉल किया है, लेकिन ऐप सेटिंग्स पर जाकर फोन से सभी ऐप डेटा साफ़ करने का प्रयास करें। –