इसलिए मैं स्पंदन में अपने ऐप पर भूमिका आधारित प्रमाणीकरण लागू करना चाहता हूं। केवल अनुमति वाले उपयोगकर्ताओं को ही इस साइट पर जाना चाहिए। मुझे त्रुटि मिल रही है:

The getter 'documents' isn't defined for the type 'QuerySnapshot<Map<String, dynamic>>'.
Try importing the library that defines 'documents', correcting the name to the name of an existing getter, or defining a getter or field named 'documents'.

क्या कोई यहाँ मेरी मदद कर सकता है?

कोड:

class AutoLoginHandler extends StatelessWidget {
  @override
  authorizeAccess(BuildContext context) {
    FirebaseAuth.instance.currentUser!().then((user) {
      FirebaseFirestore.instance
          .collection('/users')
          .where('uid', isEqualTo: user.uid)
          .get()
          .then((docs) {
        if (docs.documents[0].data.exists) {
          if (docs.documents[0].data['role'] == 'admin') {
            Navigator.of(context).push(new MaterialPageRoute(
                builder: (BuildContext context) => new LehrerMainPage()));
          }
        }
      });
    });
  }
}
0
Lucas Knötig 10 जिंदा 2022, 18:50

1 उत्तर

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

इसे इस्तेमाल करे। लेकिन मेरा सुझाव है कि आप भूमिका प्रबंधन एक्सेस के लिए हमेशा कस्टम दावे.

.then((results) {
   if (results.size > 0) {
          if (results.docs[0].data()['role'] == 'admin') 
         {
            Navigator.of(context).push(new 
   MaterialPageRoute(
                builder: (BuildContext context) => new 
   LehrerMainPage()));
          }
   }
}
1
Mehmet Demir 10 जिंदा 2022, 19:02