Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 颤振:使用firestore中的数据实现自动完成文本字段_Firebase_Flutter_Dart_Google Cloud Firestore_Textfield - Fatal编程技术网

Firebase 颤振:使用firestore中的数据实现自动完成文本字段

Firebase 颤振:使用firestore中的数据实现自动完成文本字段,firebase,flutter,dart,google-cloud-firestore,textfield,Firebase,Flutter,Dart,Google Cloud Firestore,Textfield,我想有一个自动完成文本字段,显示基于firestore数据的建议。我对它进行了研究,发现有很多插件,比如typeahead和autocomplete_textfield,但从他们的文档中很难理解如何使用firestore的数据实现它 任何人都可以知道怎么做…使用这两个插件中的任何一个。提前谢谢 我的代码: TypeAheadField( textFieldConfiguration: TextFieldConfiguration( autofocus: true, style

我想有一个自动完成文本字段,显示基于firestore数据的建议。我对它进行了研究,发现有很多插件,比如typeahead和autocomplete_textfield,但从他们的文档中很难理解如何使用firestore的数据实现它

任何人都可以知道怎么做…使用这两个插件中的任何一个。提前谢谢

我的代码:

TypeAheadField(
  textFieldConfiguration: TextFieldConfiguration(
    autofocus: true,
    style: DefaultTextStyle.of(context).style.copyWith(
      fontStyle: FontStyle.italic
    ),
    decoration: InputDecoration(
      border: OutlineInputBorder()
    )
  ),
  suggestionsCallback: (pattern) async {
    return await BackendService.getSuggestions(pattern);
  },
  itemBuilder: (context, suggestion) {
    return ListTile(
      leading: Icon(Icons.shopping_cart),
      title: Text(suggestion['name']),
      subtitle: Text('\$${suggestion['price']}'),
    );
  },
  onSuggestionSelected: (suggestion) {
    Navigator.of(context).push(MaterialPageRoute(
      builder: (context) => ProductPage(product: suggestion)
    ));
  },
)
这是我从firestore读取数据的方式:

Future<List<SearchMeet>> fetchAllMeets(uid) async {
    List<SearchMeet> meetList = [];

    QuerySnapshot querySnapshot =
    await _mainUserCollection
        .doc(uid)
        .collection('AllMeets').get();
    for (var i = 0; i < querySnapshot.docs.length; i++) {
      meetList.add(SearchMeet.fromMap(querySnapshot.docs[i].data()));
    }
    return meetList;
  }

databaseService.fetchAllMeets(widget.uid).then((List<SearchMeet> list) {
        setState(() {
          meetList = list;
        });
      });

这适用于普通列表,但如何使用typeahead autocomplete textfield插件?

请指定您已经尝试过的内容,在堆栈溢出中,当出现问题时,您已经对其进行了调查。我无法尝试任何操作,因为我仍然不知道该做什么。我使用了一个插件并尝试了一些代码,我已经更新了答案。Firestore中的数据只是数据,没有区别。如果您要求用户输入3个值,然后将它们放入一个数组中,那么您将得到一个包含3个值的数组。如果从Firebase中读取三个值并将它们放入一个数组中,则会得到一个包含三个值的数组。e、 这只是数据——三个值,不管它们来自哪里。你能澄清一下你到底遇到了什么问题吗?我很难弄清楚我应该在建议中添加什么回拨,以及Firestore还需要什么其他代码……我不知道该怎么做。如果你不能定义问题是什么,那么帮助你将是一个挑战。听起来你好像不知道如何从Firestore读取数据?如果是这样的话,那么在网上有信息,也有大量的问答,还有很多youtube视频。你试过其中任何一种来指导吗?