Firebase Angular:如何检索和显示数据?
在我的火力基地。我为我的用户提供了以下数据库: 我使用此服务来管理我的用户:Firebase Angular:如何检索和显示数据?,angular,firebase,Angular,Firebase,在我的火力基地。我为我的用户提供了以下数据库: 我使用此服务来管理我的用户: import { Injectable } from '@angular/core'; import {User} from '../models/user.model'; import {Subject} from 'rxjs/Subject'; import * as firebase from 'firebase'; @Injectable({ providedIn: 'root' }) export c
import { Injectable } from '@angular/core';
import {User} from '../models/user.model';
import {Subject} from 'rxjs/Subject';
import * as firebase from 'firebase';
@Injectable({
providedIn: 'root'
})
export class UsersService {
users: User[] = [];
usersSubject = new Subject<User[]>();
constructor() { }
emitUsers(){
this.usersSubject.next(this.users);
}
saveUsers(){
firebase.database().ref('/users').push(this.users);
}
getUsers(){
firebase.database().ref('/users')
.on('value',(data)=>{
this.users = data.val() ? data.val() : [];
this.emitUsers();
});
}
getSingleUser(id:number){
return new Promise(
(resolve,reject) =>{
firebase.database().ref('/users/'+id).once('value').then(
(data) =>{
resolve(data.val());
}, (error) => {
reject (error);
}
);
}
);
}
createNewProfile(newUser:User){
this.users.push(newUser);
this.saveUsers();
this.emitUsers();
}
removeUser(user:User){
const userIndexToRemove=this.users.findIndex(
(userEl)=>{
if(userEl==user){
return true;
}
}
);
this.users.splice(userIndexToRemove,1);
this.saveUsers();
this.emitUsers();
}
}
还有我的html
<div class="row">
<div class="col-xs-12">
<h2>Users</h2>
<div class="list-group"
*ngFor="let user of users | keyvalue async">
<p> Hello {{user.firstName}}</p>
</div>
</div>
</div>
使用者
你好{{user.firstName}
我不知道为什么,但我的数据库中有2个用户,我的输出只是:
“你好”
“你好”
名字没有写出来
你知道为什么吗
非常感谢 您似乎在通过
keyvalue
管道传递用户,而不使用其输出
在HTML中,尝试将
user.firstName
替换为user.value.firstName
当我使用set()方法而不是push()来保存数据时,这里是数据库
当我使用:
saveUsers(){
firebase.database().ref('/users').set(this.users);
}
而不是
saveUsers(){
firebase.database().ref('/users').push(this.users);
}
在这种情况下,它起作用了。我的输出是Hello Ibra和Hello Pires。但我在这种情况下的问题是,我没有push的唯一id。谢谢,但它不起作用。我用更多的信息回复我自己的帖子。当我使用set()方法保存数据时,它工作正常(因为数据库的结构不同)。但是由于push()方法,我希望获得唯一的ID。
saveUsers(){
firebase.database().ref('/users').push(this.users);
}