我从 Firebase 收到的是卡片和美元,而不是在 Flutter 中的数据。

huangapple go评论65阅读模式
英文:

I am getting card with dollars from firebase instead of data in flutter

问题

我从 Firebase 收到的是卡片和美元,而不是在 Flutter 中的数据。

snapshot.data!.docs.forEach((doc) {
    Object? data = doc.data();
    propertyCards.add(
        Card(
            child: ListTile(
                title: Text(
                    (doc.data() as Map<String, dynamic>)['property_name'] ??
                        ''),
                subtitle: Text((doc.data()
                    as Map<String, dynamic>)['property_location'] ??
                    ''),
                trailing: Text(
                    '$${(doc.data() as Map<String, dynamic>)['property_price'] ?? ''}'),
            ),
        ),
    );
});

我在从Firestore检索数据时遇到了美元符号,不知道为什么无法获取我的Firestore中的property_name、location和price。

英文:

我从 Firebase 收到的是卡片和美元,而不是在 Flutter 中的数据。

snapshot.data!.docs.forEach((doc) {
          Object? data = doc.data();
          propertyCards.add(
            Card(
              child: ListTile(
                title: Text(
                    (doc.data() as Map&lt;String, dynamic&gt;)[&#39;property_name&#39;] ??
                        &#39;&#39;),
                subtitle: Text((doc.data()
                        as Map&lt;String, dynamic&gt;)[&#39;property_location&#39;] ??
                    &#39;&#39;),
                trailing: Text(
                    &#39;$${(doc.data() as Map&lt;String, dynamic&gt;)[&#39;property_price&#39;] ?? &#39;&#39;}&#39;),
              ),
            ),
          );
        });

I am getting the dollar signs while retrieving the data from the firestore, i dont know why i am unable to get the property_name, location and price which are in my firestire.

答案1

得分: 0

以下是您要的翻译内容:

return ListView(
            children: snapshot.data!.docs.map((DocumentSnapshot document) {
              Map<String, dynamic> movie =
                  document.data()! as Map<String, dynamic>;
              return ListTile(
                leading: const Icon(Icons.movie),
                trailing: Text('$${movie['property_price'] ?? ''}'),
                title: Text(movie['title']),
                subtitle: Text(movie['genre']),
              );
            }).toList(),
          );

虽然这是在StreamBuilder中实现的,但在常规的获取调用中也是有效的。我已使用'\$${movie['property_price'] ?? ''}'来使用模板文字来显示美元货币。

我得到的结果如下图所示

我从 Firebase 收到的是卡片和美元,而不是在 Flutter 中的数据。

参考:在"Real Time updates"部分检查数据访问

英文:

You can use directly map the doc.data() to get the desired result as follows :

return ListView(
            children: snapshot.data!.docs.map((DocumentSnapshot document) {
              Map&lt;String, dynamic&gt; movie =
                  document.data()! as Map&lt;String, dynamic&gt;;
              return ListTile(
                leading: const Icon(Icons.movie),
                trailing: Text(&#39;$${movie[&#39;property_price&#39;] ?? &#39;&#39;}&#39;),
                title: Text(movie[&#39;title&#39;]),
                subtitle: Text(movie[&#39;genre&#39;]),
              );
            }).toList(),
          );

Although this is implemented in StreamBuilder this is also valid in regular get calls, I have used &#39;\$${movie[&#39;property_price&#39;] ?? &#39;&#39;}&#39; to display money in dollars using template literals.

The result I got is as follows

我从 Firebase 收到的是卡片和美元,而不是在 Flutter 中的数据。

Reference : Check data access in the Real Time updates section

huangapple
  • 本文由 发表于 2023年3月31日 16:47:07
  • 转载请务必保留本文链接:https://go.coder-hub.com/75896549.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定