【问题标题】:What is snapshotchanges in firestore什么是 firestore 中的快照更改
【发布时间】:2018-07-14 11:52:10
【问题描述】:

此函数由构造函数调用。有人可以向我深入解释一下它的作用吗?

  initializeItems(){
this.travelList$ = this.plsdala.getTravelList()
.snapshotChanges()
.map(
  changes => {
    return changes.map(c=>({
      key: c.payload.key, ...c.payload.val()
    })).slice().reverse();

   //to reverse order
  });

}

【问题讨论】:

  • 请有人帮帮我:(((

标签: angular firebase google-cloud-firestore angularfire2


【解决方案1】:

由于函数是异步的,它不会等待完成,然后继续执行下面的其余代码。因此,console.log(travelArray) 甚至在接收到数据之前运行。 (没有检查下面的语法错误)

let travelArray = [];
this.travelList$.subscribe(res => {
  res.map(c => {
    travelArray.push(c);
  })
})
.subscribe((a: travelArray) => {
       console.log(a);
      }, error => {
      });

【讨论】:

  • 问题是“什么是 firebase 中的 snapshotChanges()”
【解决方案2】:

要将 observables 推送到数组中,请执行以下操作。

let travelArray = [];
this.travelList$.subscribe(res => {
  res.map(c => {
    travelArray.push(c);
  })
})
console.log(travelArray);

【讨论】:

  • 嗨,为什么我不能在控制台打印它?
  • 你能提供你的 getTravelList() 函数吗?
  • 问题是“什么是 firebase 中的 snapshotChanges()”
【解决方案3】:

这是 Firestore 集合的当前状态。它返回一个 Observable 数据。 每当您希望能够将元数据也作为 documentID 获取时,您都可以使用它,而不是使用例如 valueChanges() 返回包含仅保存在文档中的数据的 Observable。它不包含元数据。

这意味着当您可能需要元数据时,您通常会使用 valueChanges() 来获取数据和 snapshotChanges(),例如。删除或更新文档。

您的代码基本上获取文档的数据和元数据,并从中提取数据。然后它反转数据从集合的末尾到开头。

【讨论】:

  • 嗨。如何将可观察数据推送到数组中?
  • 我的意思是它的结构是什么?
  • 如果有人感兴趣,这里是docs 的链接。有一个部分讨论了snapshotChanges()valueChanges()
猜你喜欢
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 2011-06-25
  • 2021-06-17
  • 2018-08-22
  • 1970-01-01
  • 2012-12-14
相关资源
最近更新 更多