[英]Using a variable as a firebase reference in angular
我想让一个字符串变量包含一个值,然后使用它来设置我的 firebase 数据库的引用路径。 前任。 uid
将存储来自路由 paramMap 的变量,然后在路径中使用以从数据库中获取数据。 我在下面尝试了这个,但显然没有用。
export class HistoryComponent implements OnInit {
snaps: Observable<any[]>;
uid: string;
constructor(db: AngularFireDatabase
private ngZone: NgZone, private afs: AngularFirestore, private route:
ActivatedRoute){
this.snaps = db.list('snapity-tests/12-02-19/'+ $(uid)).valueChanges();
}
ngOnInit() {
this.route.paramMap
.subscribe(params => {
this.uid = params.get('uid');
console.log(this.uid)
})
}}
您需要将构造函数内的代码移动到ngOnInit
生命周期钩子,因为类构造函数总是在onInit
钩子之前onInit
。
在 Angular 初始化指令的所有数据绑定属性后调用的生命周期钩子
所以,你只需要订阅路由参数,然后,当你有你想要的值时,你就可以使用它:
export class HistoryComponent implements OnInit {
snaps: Observable<any[]>;
uid: string;
constructor(
private db: AngularFireDatabase,
private ngZone: NgZone,
private afs: AngularFirestore,
private route: ActivatedRoute
){ }
ngOnInit() {
this.route.paramMap
.subscribe(params => {
this.uid = params.get('uid');
this.snaps = db.list('snapity-tests/12-02-19/'+ this.uid).valueChanges();
})
}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.