मैं केवल फायरस्टोर के संग्रह से चाहता हूं कि फ्यूचरबिल्डर में इन फाइलों में दोनों समान डेटा हों। लेकिन यह काम नहीं करता है। जाहिरा तौर पर ऐसा इसलिए है क्योंकि मैंने दो isGreterThanOrEqualTo का उपयोग किया है।

मैं एक क्षेत्र में दो isGreterThanOrEqualTo का उपयोग कैसे कर सकता हूं?

Future getData() async {
 var firestore =  Firestore.instance;

QuerySnapshot qn = await firestore.collection(tag).where('ckey', isGreaterThanOrEqualTo: 1).where('dkey', isGreaterThanOrEqualTo: 1).getDocuments();

return qn.documents;
}
...

   void initState() {
    super.initState();
     _data = getPosts();
  }

...

FutureBuilder(
   future: _data
   builder: (context, projectSnap)
        ...
        return ListView.builder(
          itemCount: projectSnap.data.length, 
          itemBuilder: (context, index)

NoSuchMethodError: The getter 'length' was called on null
0
Livio98 14 सितंबर 2019, 22:31

1 उत्तर

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

आपके पास NoSuchMethodError: The getter 'length' was called on null है, क्योंकि FutureBuilder का स्नैपशॉट डेटा तब तक शून्य रहेगा जब तक कि भविष्य का समाधान नहीं हो जाता।

आप या तो initialData प्रदान कर सकते हैं:

FutureBuilder(
   future: _data,
   initialData: [],
   builder: (context, projectSnap) {
        ...
        return ListView.builder(
          itemCount: projectSnap.data.length, 
          itemBuilder: (context, index)

या जांचें कि क्या डेटा बिल्डर के अंदर मौजूद है:

FutureBuilder(
   future: _data,
   builder: (context, projectSnap) {
        if (!projectSnap.hasData) return Container();
        ...
        return ListView.builder(
          itemCount: projectSnap.data.length, 
          itemBuilder: (context, index)
1
Kirill Bubochkin 14 सितंबर 2019, 20:33