उपयोगकर्ता लॉगिन के लिए मेरे पास दो विकल्प हैं,

  1. ईमेल और पासवर्ड का उपयोग करना
  2. गूगल साइन इन का उपयोग करना

जब मैं Google साइन इन विधि का उपयोग करके इसका प्रदर्शन नाम लॉग करता हूं, लेकिन ईमेल और पासवर्ड का उपयोग करते समय यह नाम प्रदर्शित नहीं करता है, तो पहले विकल्प का उपयोग करते समय user.displayName शून्य हो जाता है। मेरे पास प्रमाणीकरण के लिए प्रदाता का उपयोग है, मैंने वर्तमान यूज़र विधि को भी आजमाया है। मैं फायरस्टोर में उपयोगकर्ताओं को स्टोर करता हूं। मुझे यही मिल रहा हैयह मेरा उपयोगकर्ता संग्रह है

0
Rahul 1 अगस्त 2020, 08:27

1 उत्तर

सबसे बढ़िया उत्तर

यदि कोई उपयोगकर्ता ईमेल और पासवर्ड का उपयोग करके साइन अप करता है, तो उपयोगकर्ता के displayName और photoUrl को अपडेट करने का विकल्प होता है।

// Suppose currentUser is the logged in FirebaseUser

currentUser.updateProfile(
  UserUpdateInfo(
    displayName: 'name',
    photoUrl: '...',
  ),
),

अगर ऐसा कभी नहीं किया गया था displayName और photoUrl वापस आ जाएगा null

चूंकि आपके पास users संग्रह में डेटा है, इसलिए आपको उस डेटा को उस document से एक्सेस करना होगा जैसे आप किसी अन्य document को फायरस्टोर में एक्सेस करते हैं।

साइन अप के दौरान displayName को स्वीकार करना एक बेहतर तरीका होगा ताकि आप उस उपयोगकर्ता के displayName को अपडेट कर सकें:

FirebaseAuth.instance.createUserWithEmailAndPassword(
  email: 'an email',
  password: 'a password',
).then((newUser) {
  newUser.updateProfile(
    UserUpdateInfo(
      displayName: 'name',
    ),
  );
});

अब आप सीधे currentUser.displayName का उपयोग करके एक्सेस कर सकते हैं।

1
Navaneeth P 1 अगस्त 2020, 06:19