如何正确地从firebase.firestore()查询以获取数据

问题描述 投票:0回答:1

我一直试图弄清楚这一点,并检查了Firebase文档以及各种教程,但是无法使查询正常工作。 firestoreSave()函数可以正常工作(我在firebase上看到了整数的更新列表)。

async firestoreSave(): Promise<firebase.firestore.DocumentReference>{
  const user: firebase.User = await this.authService.getUser();
  let eventListRef = firebase.firestore().collection(`${user.uid}`).doc('sites');

  return this.eventListRef.set({sites: this.visits});
}

但是,以下功能不起作用:

async firestorePull(): Promise<firebase.firestore.DocumentReference>{
  const user: firebase.User = await this.authService.getUser();
  let eventListRef = firebase.firestore().collection(`${user.uid}`).doc('sites');

  return this.eventListRef.get();
}

我的最大努力:对于控制台日志,eventListRef.get()返回undefined,根据文档,这意味着该引用未正确链接到Firestore数据库。我相信我的错误在于eventListRef的定义以及与Firebase的链接。我相信,一旦链接正确,我应该能够调用.get(),然后从那里调用promise,以最终收到我的整数列表。

javascript typescript firebase ionic-framework google-cloud-firestore
1个回答
0
投票

我不确定集合实际上是如何工作的,但由于要使用this定义变量,因此您不想使用leteventListRef.get();而不是this.eventListRef.get();

已在您的代码中固定:

async firestoreSave(): Promise<firebase.firestore.DocumentReference>{
  const user: firebase.User = await this.authService.getUser();
  let eventListRef = firebase.firestore().collection(`${user.uid}`).doc('sites');

  return eventListRef.set({sites: this.visits});
}
async firestorePull(): Promise<firebase.firestore.DocumentReference>{
  const user: firebase.User = await this.authService.getUser();
  let eventListRef = firebase.firestore().collection(`${user.uid}`).doc('sites');

  return eventListRef.get();
}

现在将不再是未定义的。

此外,请注意,您可以在此处使用const代替let

const eventListRef = firebase.firestore().collection(`${user.uid}`).doc('sites');
© www.soinside.com 2019 - 2024. All rights reserved.