我正在开发一个angular-firebase离子应用程序但是从firebase获取当前用户帖子的问题。我只需要获取当前的用户帖子
这里是代码:
postss: any;
constructor(
private afAuth: AngularFireAuth,
) {
this.postss = this.afDB.list('users/posts').valueChanges();
this.afAuth.authState.subscribe(user => {
}
这里的HTML
<ion-list no-lines>
<ion-card *ngFor="let post of posts ">
<li><ul>{{post}} </ul></li>
以下是截图:
答案 0 :(得分:2)
而不是this.postss = this.afDB.list('users/posts').valueChanges();
this.postss = this.afDB.list('users/posts/' + user.uid).valueChanges();
。显然,可能需要修改问题中发布的操作顺序,以便在定义thi.afDB.list
语句之前获取currentUser.uid。
答案 1 :(得分:1)
我不确定数据库的结构,但单独使用'list'将返回位于该路径中的所有对象。
您可以通过执行以下操作来执行查询并指定要拉出的对象:
this.fireDB.list('users/posts', ref => ref.orderByChild('user_id').equalTo('123')).snapshotChanges().subscribe(res=> {
res.forEach(doc =>
this.posts.push(doc.payload.val());
console.log(doc.payload.val()); //This will show you the values of each post returned.
console.log(doc.key); //This will show you the ID of the object entry in the database
});
});
上面的查询例如,将返回user_id = 123创建的用户/帖子下数据库中的所有对象
您可以阅读有关angularfire2 here
的更多信息