【问题标题】:Display Firestore map data in Flutter在 Flutter 中显示 Firestore 地图数据
【发布时间】:2020-01-14 05:22:22
【问题描述】:

我正在构建一个密码管理器,并试图通过在 Map 中显示数据来节省 Firestore 读取。这个想法是有一个文档(对于每个密码类别)并将密码作为地图存储在其中。在此处查看示例屏幕截图:

这个想法是用户点击每个密码(地图),应用程序使用索引将他们带到相关的密码。然后,我希望将每个地图中的数据单独排序,以便它们可以存在于自己的文本小部件中。但是我还没有看到在 Flutter 中显示地图数据的任何可能性。

我已经尝试了这里的一些示例,但无法显示地图中的数据 - https://github.com/fireship-io/flutter-base/blob/master/lib/main.dart

任何建议将不胜感激。

new StreamBuilder(
    stream: Firestore.instance
        .collection('users')
        .document(userDocSTRING.toString())
        .collection(userPassSTRING.toString())
        .snapshots(),
    builder: (context, snapshot) {
      if (snapshot.connectionState == ConnectionState.waiting) {
        // If no data is present, display a waiting indicator to the user
        // If Null, red screen displays
        return Center(child: CircularProgressIndicator());
      } else {
        // Debug print for Ryan
        // print(snapshot.data[0].data.toString());
        return new ListView.builder(
          itemCount: snapshot.data.documents.length,
          itemBuilder: (context, index) {
            DocumentSnapshot documentSnapshot =
                snapshot.data.documents[index];
            return  ListTile(
                        leading: Container(
                            child: IconButton(
                              icon: Icon(Icons.content_copy),
                              color: lightCardCOLOR,
                        title: Text(documentSnapshot['Name']

从上面的代码可以看出,从文档中获取字段很容易,但我不希望每个密码都有自己的文档。我想要一个文档来保存与密码相对应的多个地图。所以documentSnapshot['Name']我想成为一个地图的名字或值

【问题讨论】:

  • 请提供您已经尝试过的代码示例。
  • 我已经把我的代码放在上面,并在我想要完成的最后做一个简短的总结
  • 我建议您尝试“节省 Firestore 读取”会使您更难以建模和显示数据。它也不会缩放,因为文档的最大大小为 1MB。考虑将每个密码存储在不同的文档中以使其更容易。文档读取并不是真的很昂贵,Firebase SDK 会在本地缓存它们,以避免查询时读取的成本。
  • @DougStevenson 我完全忘记了 1MB 的限制——这会让我很头疼,因为这是一个用于更大规模应用程序的测试平台!您可以发布该回复以便我将其标记为答案吗?当涉及到它时,我将不得不支付额外阅读的价格!

标签: flutter dart google-cloud-platform google-cloud-firestore


【解决方案1】:

我建议您尝试“节省 Firestore 读取次数”会使您更难以建模和显示数据。它也不会缩放,因为文档的最大大小为 1MB。考虑将每个密码存储在不同的文档中以使其更容易。文档读取并不是真的很昂贵,Firebase SDK 会在本地缓存它们,以避免查询时读取的成本。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2018-11-22
    • 2021-11-28
    • 2020-03-31
    • 2021-07-24
    • 2021-05-20
    • 1970-01-01
    • 2020-06-09
    • 2020-04-26
    相关资源
    最近更新 更多