Ionic 如何将变量传递给 firebase equalTo 方法
Ionic How to Pass variable to firebase equalTo method
我已经设法从 firebase.problem 中获取数据,但是当我要根据 id 过滤数据时它不起作用。
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFireDatabase, AngularFireList ,} from 'angularfire2/database';
import { Observable } from 'rxjs'
import { query } from '@angular/core/src/render3';
import { Key } from 'protractor';
class postview {
constructor(public title) { }
}
@Component({
selector: 'app-news-view',
templateUrl: './news-view.page.html',
styleUrls: ['./news-view.page.scss'],
})
export class NewsViewPage implements OnInit {
id: string;
public books: AngularFireList<postview[]>;
itemlol: Observable<any>;
posts: Observable<any[]>;
constructor(private route: ActivatedRoute , db: AngularFireDatabase) {
let idp :string = this.id;
this.posts = db.list('Posts' ,ref => {
return ref.orderByChild('Post_Id').equalTo(idp)
}).valueChanges();
// this.itemlol= db.object('Posts').valueChanges();
}
ngOnInit() {
this.id = this.route.snapshot.paramMap.get('id');
console.log(this.id);
console.log(this.posts);
}
}
在 return ref.orderByChild('Post_Id').equalTo(idp)
部分中,我需要在 equalTo()
中传递变量。它应该根据用户说明更改
示例
equalTo(01)
equalTo(02)
这是我的 firebase 数据库:
在 ngOnInit 之前调用构造函数,因此 this.id 的值在查询时将是未定义的。
你应该在构造函数中获取参数
this.id = this.route.snapshot.paramMap.get('id');
let idp :string = this.id;
this.posts = db.list('Posts' ,ref => ref.orderByChild('Post_Id').equalTo(idp) ).valueChanges();
我已经设法从 firebase.problem 中获取数据,但是当我要根据 id 过滤数据时它不起作用。
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFireDatabase, AngularFireList ,} from 'angularfire2/database';
import { Observable } from 'rxjs'
import { query } from '@angular/core/src/render3';
import { Key } from 'protractor';
class postview {
constructor(public title) { }
}
@Component({
selector: 'app-news-view',
templateUrl: './news-view.page.html',
styleUrls: ['./news-view.page.scss'],
})
export class NewsViewPage implements OnInit {
id: string;
public books: AngularFireList<postview[]>;
itemlol: Observable<any>;
posts: Observable<any[]>;
constructor(private route: ActivatedRoute , db: AngularFireDatabase) {
let idp :string = this.id;
this.posts = db.list('Posts' ,ref => {
return ref.orderByChild('Post_Id').equalTo(idp)
}).valueChanges();
// this.itemlol= db.object('Posts').valueChanges();
}
ngOnInit() {
this.id = this.route.snapshot.paramMap.get('id');
console.log(this.id);
console.log(this.posts);
}
}
在 return ref.orderByChild('Post_Id').equalTo(idp)
部分中,我需要在 equalTo()
中传递变量。它应该根据用户说明更改
示例
equalTo(01)
equalTo(02)
这是我的 firebase 数据库:
在 ngOnInit 之前调用构造函数,因此 this.id 的值在查询时将是未定义的。
你应该在构造函数中获取参数
this.id = this.route.snapshot.paramMap.get('id');
let idp :string = this.id;
this.posts = db.list('Posts' ,ref => ref.orderByChild('Post_Id').equalTo(idp) ).valueChanges();