bec*_*kah 0 firebase ionic2 angularfire2 angular
现在,我正在使用文档中描述的方法展开我的数据.但是,文档说明:
AngularFire2默认情况下会解压缩Firebase DataSnapshot,但您可以通过指定preserveSnapshot选项将数据作为原始快照获取.
如何在item不手动解包数据快照的情况下访问"默认"解包功能(读取:访问元素)?
我的Firebase数据如下所示:
{
testObj : {
firstName: "beckah",
lastName: "s"
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码(有效)是:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { AngularFireDatabase, FirebaseObjectObservable } from 'angularfire2/database';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
item: FirebaseObjectObservable<any>;
constructor( public navCtrl: NavController,
public db: AngularFireDatabase ) {
this.item = db.object('/testObj', { preserveSnapshot: true });
this.item.subscribe(snapshot => {
console.log(snapshot.val())
});
}
}
Run Code Online (Sandbox Code Playgroud)
哪个输出
Object {firstName: "beckah", lastName: "s"}
Run Code Online (Sandbox Code Playgroud)
如何在item不手动展开快照的情况下完成同样的事情(console.log我的对象),就像文档状态一样可以吗?
有某种this.item.get("firstName")方法吗?
小智 7
使用AngularFire,您根本不需要担心快照.只需订阅AngularObjectObservable,它就会为您提供对象.
angularfire2版本4
this.item$ = this.db.object('/item').subscribe(item => console.log(item));
Run Code Online (Sandbox Code Playgroud)
angularfire2版本5
this.item$ = this.db.object<Item>('/item').valueChanges().subscribe(item => console.log(item));
Run Code Online (Sandbox Code Playgroud)
您不应该在构造函数中订阅.订阅onNgInit.然后确保取消订阅onNgDestroy以避免内存泄漏.
在许多情况下,您根本不需要订阅 - 让Angular使用async管道在模板中执行:
angularfire2版本4
// component
public item$: FirebaseObjectObservable<Item>;
ngOnInit() {
this.item$ = this.db.object('/item');
}
// template
<div *ngIf="item$ | async as item">
First name is {{item?.firstName}}.
</div>
Run Code Online (Sandbox Code Playgroud)
angularfire2版本5
// component
public item$: Observable<Item>;
ngOnInit() {
this.item$ = this.db.object<Item>('/item').valueChanges();
}
// template
<div *ngIf="item$ | async as item">
First name is {{ item?.firstName }}
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7393 次 |
| 最近记录: |