"items": {
"a" : {
"size" : "small",
"text" : "small thing"
},
"b" : {
"size" : "medium",
"text" : "medium sample"
},
"c" : {
"size" : "large",
"text" : "large widget"
}
}
假设我有上述数据。我想从组件文件中的项列表中获取关键 a 的数据,而不会遍历整个列表。我试过从文档中。但是找不到这种要求。此平台上的解决方案与5.0之前的早期版本相关。有谁知道我们怎么能实现它?
答案 0 :(得分:1)
我想你指的是实时数据库,因为你提到了" items list",在FireStore中它是集合。
要获取对象,请使用AngularFireDatabase.object()函数。
示例:
// Get an object, just the data (valuesChanges function), only once (take(1) function)
import 'rxjs/add/operator/take';
let subscribe = AngularFireDatabase.object('items/a').valueChanges().take(1).subscribe(
data =>{
console.log(data);
}
);
另一种方法是在订阅返回中调用subscrible.unsubscribe()函数,而不是使用take()函数:
let subscribe = AngularFireDatabase.object('items/a').valueChanges().subscribe(
data =>{
console.log(data);
subscribe.unsubscribe();
}
);
上面的示例在执行时获取数据,而不是在此之后获得对象发生的更改。
// Get an object, just the data (valuesChanges function), and all subsequent changes
let subscribe = AngularFireDatabase.object('items/a').valueChanges().subscribe(
data =>{
console.log(data);
}
);
以上示例在每次对象发生更改时获取数据。
我测试了两个例子。