【问题标题】:Cloud Firestore - Querying for a single document basedCloud Firestore - 查询基于单个文档
【发布时间】:2018-12-20 09:22:59
【问题描述】:

我正在使用 Cloud Firestore(仍然是 Firebase,但不是实时数据库)在 Angular 6 中开发一个项目。如何根据值查询集合,即我有一个用户集合,用户集合中的每个文档都有一个名为“id”的字段,该字段分配有一个哈希值。如果我有一个特定的 id 哈希,我如何查询集合以获取 id 等于我想到的那个文档。另外,一旦我有了文档,我是否可以获取自动分配的文档 ID?

【问题讨论】:

  • 如果不是firebase实时数据库,你为什么使用那个标签?请确保为您的问题使用正确的标签。

标签: angular firebase google-cloud-firestore angular6


【解决方案1】:

对于 Angular 6 项目,您可以安装 AngularFire2,它是 Firebase 和 Angular 的官方库。

您现在可以制作一个组件来满足您的需求:

1- 在组件中导入库

 import { AngularFirestore} from 'angularfire2/firestore';

2 - 注射

 constructor(public afs: AngularFirestore) {}

3 - 创建您的查询 (ID = yourHash)

 this.afs.firestore.collection('users')
        .where('id','==', ID)
        .get()
        .then(querySnapshot => {
                querySnapshot.forEach(function (doc) {
                      console.log(doc.id); // id of doc
                      console.log(doc.data()); // data of doc
                })
         });

【讨论】:

  • 感谢您的回答,在您进行以下更正后,我很乐意为您投票: 1. 在 collection('users') 之后有一个额外的点 2. 在where 声明谢谢!
  • 获取到doc.id后,如何只返回ID并获取字符串值?
  • 实现这一点的最佳方法是将第 3 部分放在一个返回 promise 的函数中,并在 'this.afs......' 之前和 forEach 返回 ID 之后添加 return 语句。然后调用你的函数,它将返回你所需要的。
猜你喜欢
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
  • 2021-05-11
  • 2019-09-03
  • 2019-08-14
  • 2021-08-12
  • 2018-08-18
  • 1970-01-01
相关资源
最近更新 更多