Suchen Schlüssel in Array, wie greift sie in .wo für die Suche

stimmen
0

ich möchte meine Suchschlüssel in einem Array speichern, so dass ich mit einer einzigen Code-Zeile für mehrere Dinge suchen in, aber es funktioniert nicht.

im mit einfacher Suche genau auf diesen einem https://github.com/rajayogan/flutterfirestore-instantsearch

Was ich im Grunde mehrere Dokumente ist, die ein Array hat, eine Reihe von Karte bestehen, die Informationen wie item_name hat, etc ... was ich will ist die item_name suchen.

Ich habe versucht zu setzen

import 'package:cloud_firestore/cloud_firestore.dart';


//this class should take the arraysearch which is  that i wish to be my searchkeys


class SearchService {
  searchByName(String searchField) {
    return Firestore.instance
        .collection('Foodtruckinfo')
        .where('arraysearch',
        isEqualTo: searchField.substring(0, 1).toUpperCase())
        .getDocuments();
   }
 }



 import 'package:cloud_firestore/cloud_firestore.dart';
  import 'package:customer_register_login/Customer/searchmethod.dart';

  import 'package:flutter/material.dart';

     class MyHomePage extends StatefulWidget {
     @override
    _MyHomePageState createState() => new _MyHomePageState();
   }

    class _MyHomePageState extends State<MyHomePage> {
    var queryResultSet = [];
    var tempSearchStore = [];

    initiateSearch(value) {
     if (value.length == 0) {
       setState(() {
         queryResultSet = [];
         tempSearchStore = [];
        });
       }

     var capitalizedValue =
          value.substring(0, 1).toUpperCase() + value.substring(1);

     if (queryResultSet.length == 0 && value.length == 1) {
       SearchService().searchByName(value).then((QuerySnapshot docs) {
         for (int i = 0; i < docs.documents.length; ++i) {
           queryResultSet.add(docs.documents[i].data);
          }
       });
     } else {
        tempSearchStore = [];
        queryResultSet.forEach((element) {
         if (element['item_name'].startsWith(capitalizedValue)) {
           setState(() {
              tempSearchStore.add(element);
           });
         }
        });
     }
   }

    @override
   Widget build(BuildContext context) {
     return new Scaffold(
             appBar: new AppBar(
                title: Text('Firestore search'),
              ),
              body: ListView(children: <Widget>[
                Padding(
                  padding: const EdgeInsets.all(10.0),
                  child: TextField(
                   onChanged: (val) {
                   initiateSearch(val);
               },
               decoration: InputDecoration(
                   prefixIcon: IconButton(
                     color: Colors.black,
                      icon: Icon(Icons.arrow_back),
                    iconSize: 20.0,
                    onPressed: () {
                        Navigator.of(context).pop();
                     },
                   ),
                    contentPadding: EdgeInsets.only(left: 25.0),
                    hintText: 'Search by name',
                   border: OutlineInputBorder(
                       borderRadius: BorderRadius.circular(4.0))),
              ),
            ),
                 SizedBox(height: 10.0),
                   GridView.count(
                  padding: EdgeInsets.only(left: 10.0, right: 10.0),
               crossAxisCount: 2,
                crossAxisSpacing: 4.0,
                mainAxisSpacing: 4.0,
                primary: false,
               shrinkWrap: true,
                children: tempSearchStore.map((element) {
                   return buildResultCard(element);
               }).toList())
          ]));
       }
   }

      Widget buildResultCard(data) {
        return Card(
             shape: RoundedRectangleBorder(borderRadius: 
    BorderRadius.circular(10.0)),
     elevation: 2.0,
      child: Container(
          child: Center(
              child: Text(
         data['item_name'],
         textAlign: TextAlign.center,
        style: TextStyle(
          color: Colors.black,
          fontSize: 20.0,
        ),
       )))); 
    }

[1]: https://ibb.co/47p2dBD <image für gewünschte Taste

[2]: https://ibb.co/kQkWKsq <Bild für die gewünschte Suche (in 1 # Dokument)

[3]: https://ibb.co/MVnBtCd <Bild für die gewünschte Suche (in 2 # Dokument)

[4] https://ibb.co/yk04RJ4 <Bild für die gewünschte Such (in 3 # Dokument)

Veröffentlicht am 09/10/2019 um 18:56
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Ich suchte in der Google-Dokumentation und ich habe nichts für Dart und Firestor Kollektionen finden. Sie können aber eine Abhilfe versuchen, von dieser dritten Partei Sie einen Weg finden können Node.js mit Dart zu verwenden. Darüber hinaus können Sie die offizielle Google folgen Dokumentation auf Ihre Daten zu erhalten mit Node.js.

Beantwortet am 10/10/2019 um 18:31
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more