【问题标题】:How to get all documents from Firestore in once?如何一次从 Firestore 获取所有文档?
【发布时间】:2021-03-27 16:58:35
【问题描述】:

当我订阅 valueChanges 时,我首先返回一个长度为 1 的对象,如您在 console.log(下图)中所见,不久之后该对象具有所有值。但这不是我想要的。我需要从一开始就获取所有值,以便我可以继续使用这些值。有人可以帮忙吗?谢谢。

return new Promise(resolve => {
   this.store.collection('Kontaktdaten',ref => ref.where('Ankunft', '>=', timeAnkunft))
        .valueChanges()
        .subscribe((persons) => {
          personsArray = persons;
          console.log(personsArray)
          personsArray.map((person,index,array) => {
            if(person.Ende > timeEndeBesuch) {
              array.splice(index,1);
            }
          })
          resolve(personsArray);   
        })
    })

【问题讨论】:

    标签: angular typescript firebase google-cloud-firestore


    【解决方案1】:

    您是否启用了磁盘缓存?如果是这样,很可能初始结果来自本地缓存。

    实际上并没有办法防止这种情况发生,但您可以通过检查其DocumentSnapshot.metadata.fromCache property 来检测该项目来自本地缓存并且可能已过时。

    【讨论】:

    • 感谢您的提示。第一个对象肯定来自缓存。不,我没有有意识地启用磁盘缓存。但是,我相信这在移动应用程序上默认启用?如何禁用磁盘缓存?
    • 在本机移动客户端上默认启用它,但由于您使用angular 标记,我假设您使用的是 web/JavaScript SDK。无论哪种方式,要从其默认值更改离线持久性切换,请参阅firebase.google.com/docs/firestore/manage-data/…
    猜你喜欢
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 2020-08-08
    • 2018-08-24
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    相关资源
    最近更新 更多