javascript - Firestore : Retrieve a single document

标签 javascript angular rxjs google-cloud-firestore angularfire5

我想从 Firestore 中检索单个文档。所以我不是指集合中的文档列表(我知道该怎么做)。假设我知道文档的键值对之一,我想查找文档并将其检索到 Angular 4 中。

interface Occupations {
	duration: number;
	id_entity: number;
	id_job: number;
	id_user: number;
	salary: number;
	start_time: number;
}

occupationDoc:AngularFirestoreDocument<Occupations>;
occupation: Observable<Occupations>;
<h1>A specific post:</h1>

  <h3>{{ (occupation | async)?.salary }}</h3>
  <p>{{ (occupation | async)?.id_user }}</p> 
  <p>{{ (occupation | async)?.duration }}</p> 
  <p>{{ (user | async)?.lastName }}</p> 

最佳答案

使用flatmap返回单个文档数据:

首先导入 .flatMap() 属性。

import { AngularFirestore } from 'angularfire2/firestore';
import 'rxjs/add/operator/mergeMap';

然后查询您的集合并将其限制为 1 个文档:

this.afs.collection('collection', ref => ref.where('value', '==', true) 
.limit(1)).valueChanges().flatMap(result => result);

然后您可以订阅它,它将返回扁平的 json 而不是数组。

编辑:

您可以直接在您的 html 中使用它:

this.userInfo = this.afs.collection('collection', ref => ref.where('value', 
'==', true).limit(1)).valueChanges().flatMap(result => result);

在html代码中:

<p>{{ (userInfo | async)?.duration }}</p>

关于javascript - Firestore : Retrieve a single document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47184046/

相关文章:

javascript - 从 Angular 指令访问 img 标签中的 "src"属性

ajax - 如何使 angular2 在成功的预检请求后正确触发正确的回调

javascript - 为什么 typescript 忽略变量类型?

javascript - Fabric.js 低 FPS 多个对象的不透明度动画

javascript - jQuery 变量(在 html 中选择)

javascript - 为什么 switch 可以用作实例运算符,而 merge 和 concat 不能

javascript - 将问题传递选择器作为参数输入到分派(dispatch)操作

javascript - RXJS5 像 Promise 一样链接

javascript - 添加 javascript 后标题元素不会显示,但删除它后会显示

javascript - 动态插入的 javascript 函数 arg 因字符串值而失败,但适用于数字参数