【问题标题】:Firebase Cloud Firestore doesn't show all entries in consoleFirebase Cloud Firestore 未在控制台中显示所有条目
【发布时间】:2021-09-06 11:00:24
【问题描述】:

我有一个简单的应用程序,我可以在其中提交一个 id(字符串)到 firebase firestore,它会保存一个带有 id 和当前时间的对象。

在测试时我注意到一件事:当我直接通过控制台从 firestore 删除数据时,我的应用程序仍然认为数据在数据库中,而当我通过控制台添加数据时,我的应用程序看不到它。只有在我的应用程序中添加和删除数据时,它才能正常工作。这是为什么?如果没有这种奇怪的行为,应用程序不应该只查看数据库中当前的内容吗?

我如何在测试时从数据库中获取数据:

  static Future<void> printEntries() async {
    QuerySnapshot snapshot = await songList.snapshots().first;
    snapshot.docs.forEach((element) {
      print('Element in database: ${element['id']}');
    });
    print('***************');
  }

当我点击一个按钮时这个函数被调用。没什么特别的。

songList 是之前声明的变量,如下所示:

  static final CollectionReference songList = FirebaseFirestore.instance.collection('MyRoom');

我尝试删除整个集合,但不知何故,我的应用程序仍会获取之前保存的数据,即使 Firestore 控制台没有显示它。

【问题讨论】:

    标签: database firebase flutter dart google-cloud-firestore


    【解决方案1】:

    Firestore 为您缓存数据,如果您想获取更新的数据,您需要使用来监听此类事件,

    db.collection("cities").doc("SF")
        .onSnapshot((doc) => {
            console.log("Current data: ", doc.data());
        });

    参考:Listening to firestore collection changes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      相关资源
      最近更新 更多