我正在尝试从firebase数据库中获取单个记录数据,但无法从firebase中获取单个记录数据。
我能够将记录添加到firebase中,并且能够在清单中的所有记录中获取和显示。
我正在尝试获取基于$key的单个记录
我上传了db json

我的依赖项

我的详细信息页面组件
import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { UserService } from '../user.service';
@Component({
selector: 'app-user-details',
templateUrl: './user-details.component.html',
styleUrls: ['./user-details.component.css']
})
export class UserDetailsComponent implements OnInit {
id: any;
userList: any;
imageUrl: any;
constructor(private _user: UserService, private router: Router, private
arouter: ActivatedRoute) { }
ngOnInit() {
this.id = this.arouter.snapshot.params['id'];
console.log(this.id);
this._user.getUserDetails(this.id)
.subscribe(res => {
this.userList = res;
});
console.log(this.userList);
}
}我的服务文件:
import { Injectable } from '@angular/core';
import { AngularFireDatabase, AngularFireList, FirebaseObjectObservable }
from 'angularfire2/database';
import { User } from './user';
import * as firebase from 'firebase';
@Injectable({
providedIn: 'root'
})
export class UserService {
userList: AngularFireList<User>;
folder: any;
userDetails: AngularFireList<User>;
constructor(private _fb: AngularFireDatabase) {
this.folder = 'userProfile';
this.userList = _fb.list('/user');
}
getAllUser() {
return this.userList;
}
inserUser(contFrm: User){
this.userList.push(contFrm);
}
getUserDetails(id) {
this.userDetails = this._fb.list('/user'ref => ref.equalTo(id)).valueChanges());
return this.userDetails;
}它没有抛出任何错误,但我无法获得记录数据。
发布于 2018-08-14 23:01:35
从AngularFireList 5.0版本开始,必须在list之后链接valueChanges才能返回Observable。此外,在getUserDetails方法中没有返回值
getUserDetails(id) {
this.userDetails = this._fb.list('/user', {
query: {
orderByChild: 'fname',
equalTo: id
}
}).valueChanges();
return this.userDetails;
}https://stackoverflow.com/questions/51835884
复制相似问题