【问题标题】:How to sort list from FireStore如何从 FireStore 排序列表
【发布时间】:2018-12-18 18:11:27
【问题描述】:

在我在 FireStore 上的文档中,每个文档都有一个字符串列表。当我在应用程序中显示文档时,我想按字母顺序对它们进行排序。我正在尝试的方法不起作用。

var words = document['list'].cast<String>();
words.sort(); // Outputs 'null'

在调试器中检查时,当我投射列表时,对象的类型为 CastList,但我找不到任何关于此的信息,并且尝试创建具有该声明类型的对象告诉我它是一个未定义的类。所以我尝试指定我想要的类:

List<String> words = document['list'].cast<String>();

但是当我尝试排序时它仍然输出null

我的收藏看起来像这样

我正在获取lists 中的所有文档,并在列表视图中显示它们中的每一个。

StreamBuilder(
  stream: Firestore.instance.collection('lists').orderBy('releases').snapshots,
  builder: (context, snapshot) {
    if (!snapshot.hasData)
      return const Center(child: Text('Loading...'));

      return ListView.builder(
        itemCount: snapshot.data.documents.length,
        itemBuilder: (context, index) =>
            _buildRow(context, snapshot.data.documents[index], index),
      );
    },
)

  Widget _buildRow(BuildContext context, DocumentSnapshot document, int index) {
    var words = document['list'].cast<String>();
    var wordsString = words.toString();
    wordsString = wordsString.substring(1, wordsString.length - 1);

    return CheckboxListTile(
      title: Text(
        document['name'],
        style: _largerTextStyle,
      ),
      subtitle: Text(
        wordsString,
        style: _textStyle,
      ),
      value: _selectedIndices.contains(index),
      onChanged: (bool value) {
        setState(() {
          if (value) _selectedIndices.add(index);
          else _selectedIndices.remove(index);
        });
      },
    );
  }

【问题讨论】:

  • 你能告诉我们你来自firestore的数据吗? (收藏/文件)
  • @diegoveloper 添加了一张图片。

标签: dart flutter google-cloud-firestore


【解决方案1】:

应该可以,不需要打电话cast

编辑: 我想你忘记提取数据了。

List words = document.data['list'];
words.sort();

【讨论】:

  • 这给了我null。
  • 你收藏的名字是什么,你怎么称呼?如果你打印这个:document['list'] 并给你 null,那么你的文件不正确
  • 我意识到文档的完整层次结构可能会有所帮助,因此我替换了图像。我还添加了用于显示项目的代码。
  • 向以后来到这里的任何人指出这一点很重要:sort() 方法不返回类型,因此不能在声明行中调用它。这是我的问题之一。
猜你喜欢
  • 2020-07-03
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 2018-04-17
  • 2018-09-03
  • 1970-01-01
相关资源
最近更新 更多