当前位置: 首页 > 知识库问答 >
问题:

如何阻止代码将firestore int数据转换为flutter中的字符串

欧阳子石
2023-03-14

我有两个集合设置,一个为个人用户,一个为用户可以加入的组。在单个集合中,用户有一个名为plastics的int数据,但当我尝试将该int数据分组显示时,它会在FireStore中转换为字符串。这是不好的,因为我需要这些数据保持int值,因为用户有能力添加到它,因此当它变成字符串时,用户不能再只为他们的单个集合更新组集合中的值。

这里有一张个人用户收藏的照片:

如您所见,名为plastics的int数据被保存为int。

@override
  Widget build(BuildContext context) {
    final firestore = FirebaseFirestore.instance;
    FirebaseAuth auth = FirebaseAuth.instance;
    Future<String> getPlasticNum() async {
      final CollectionReference users = firestore.collection('UserNames');

      final String uid = auth.currentUser.uid;

      final result = await users.doc(uid).get();

      return result.data()['plastics'].toString();
    }
@override
  Widget build(BuildContext context) {
    final CollectionReference users = firestore.collection('UserNames');

    final String uid = auth.currentUser.uid;

    return FutureBuilder(
        future: users.doc(uid).get(),
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            final result = snapshot.data;
            final groupId = result.data()['groupId'];
            return FutureBuilder<QuerySnapshot>(
                // <2> Pass `Future<QuerySnapshot>` to future
                future: FirebaseFirestore.instance
                    .collection('Groups')
                    .doc(groupId)
                    .collection('Members')
                    .orderBy('plastics', descending: true)
                    .get(), //Once the async problem is solved i will be able to save the groupId as. variable to be used in my doc path to access this collection.  How do I do this?
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    // <3> Retrieve `List<DocumentSnapshot>` from snapshot
                    final List<DocumentSnapshot> documents = snapshot.data.docs;
                    return ListView(
                        children: documents
                            .map((doc) => Card(
                                  child: ListTile(
                                    title: Text(doc['displayName']),
                                    subtitle: Text(doc['plastics']),
                                  ),
                                ))
                            .toList());
                  } else if (snapshot.hasError) {
                    return Text('Its Error!');
                  }
                });
          }
        });
  }

这将firestore中的int数据显示为字符串。

我不明白为什么即使我从另一个集合中获取相同的数据,它也变成了字符串,而在单个集合中它被保存为int?

共有1个答案

萧煜
2023-03-14

在firestore中,数据是以字符串形式存储的,你不能在firestore中以int形式存储数据。如果需要int值,则可以在代码中手动转换它,使用

  int.parse('string')
 类似资料:
  • 我目前正在python中使用Google Vision API检测图像中的汉字,但我发现Google将返回python源代码(如\XE7\X80\X86\XE7\XAB\X91),而不是一些人类可读字符串。 我如何将它转换成utf-8格式的人类可读文本? Requests.Exceptions.ConnectionError除外:打印(“Request Error”) 谢谢你

  • 问题内容: 我想知道是否有任何方法可以将A转换为Java可编译代码。 我有一个比较表达式保存在数据库字段中。我想从数据库中检索它,然后在条件结构中对其求值。 有什么办法吗? 问题答案: 如果你使用的是Java 6,则可以尝试使用Java Compiler API。其核心是JavaCompiler类。你应该能够在内存中构造对象的源代码。 警告:由于某些奇怪的原因,我的平台上不存在JavaCompil

  • 问题内容: 我在Go中的语法树中走来走去,试图找到对某个特定函数的所有调用,然后获取其字符串参数(这是一个文件名,应为字符串文字,而不是其他任何标识符)。我已成功完成此操作,现在有了的节点,但其值为Go代码,而不是应具有的字符串值。 但是我想要相反的东西-类似于eval函数(但仅适用于Go字符串文字)。 问题答案: 您可以使用进行转换(取消引用)。 您应该注意的一件事是,只能取消用引号引起来的字符

  • 本文向大家介绍如何将R数据帧中的字符串转换为NA?,包括了如何将R数据帧中的字符串转换为NA?的使用技巧和注意事项,需要的朋友参考一下 我们经常会在数据收集过程中发现错误,这些错误可能会导致研究结果不正确。当错误地收集数据时,将使分析师的工作变得困难。显示数据有错误的一种情况是获取字符串代替数字值。因此,我们需要将这些字符串转换为R中的NA,以便我们可以进行预期的分析。 示例 请看以下数据帧- 将

  • 问题内容: 如何使用JavaScript将字符转换为ASCII码? 例如: 从“ \ n”获得10。 问题答案:

  • 问题内容: 我已经编写了使用SparkSQL访问Hive表的代码。这是代码: 我想知道如何将完整的输出转换为String或String数组?当我尝试与另一个只能传递String或String type Array值的模块一起使用时。 我试过其他方法,例如将类型转换为字符串值或将其转换为字符串值。但是没有为我工作。 请让我知道如何将DataSet值转换为String? 问题答案: 这是Java中的示