如何根据 Angular 6 中的 Firebase 实时数据库中的键获取单个记录
Posted
技术标签:
【中文标题】如何根据 Angular 6 中的 Firebase 实时数据库中的键获取单个记录【英文标题】:How to get single record based on key from firebase realtime databse in angular 6 【发布时间】:2019-01-20 23:36:56 【问题描述】:我正在尝试从 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;
它没有抛出任何错误,但我无法获取记录数据。
【问题讨论】:
你没有在getUserDetails
方法中返回值
【参考方案1】:
从 AngularFireList 5.0 版开始,您必须在 list
之后链接 valueChanges
才能返回 Observable
此外,您没有在getUserDetails
方法中返回值
getUserDetails(id)
this.userDetails = this._fb.list('/user',
query:
orderByChild: 'fname',
equalTo: id
).valueChanges();
return this.userDetails;
【讨论】:
以上是关于如何根据 Angular 6 中的 Firebase 实时数据库中的键获取单个记录的主要内容,如果未能解决你的问题,请参考以下文章