import { Injectable } from '@angular/core';
import { AngularFire, FirebaseListObservable } from 'angularfire2';
/*
Generated class for the FirebaseService provider.
See https://angular.io/docs/ts/latest/guide/dependency-injection.html
for more info on providers and Angular 2 DI.
*/
@Injectable()
export class FirebaseService {
users:FirebaseListObservable<any>;
constructor(public angularFire: AngularFire,) {
console.log('Hello FirebaseService Provider');
this.users=this.angularFire.database.list('users');
}
saveuser(user){
this.users.push(user);
}
}
嗨,在这段代码中,我试图将新用户添加到用户表下的firebase表中,问题是我无法找到set方法我只能访问push是它的东西我&# 39;我做错了吗? 谢谢你的帮助
答案 0 :(得分:1)
AngularFire2不会为列表可观察项公开set
。您应该使用update
代替。
当您查看observable对象时,这有一定意义,它会公开set
。在对象observable上调用set
时,数据库对象的整个内容将替换为指定的值。
通常,您不会想要替换整个列表,因此set
无法公开是有道理的。 update
是合适的,因为您要更新列表是添加新用户。
this.users.update(user.id /* or whatever is to be the key */, user);
或者,您可以使用列表可观察的SDK参考来调用set
:
this.users.$ref.ref.child(user.id /* or whatever is to be the key */).set(user);
答案 1 :(得分:0)
尝试以下作为示例案例,其中:
list。$ add({foo:“bar”})。then(...);
此示例取自AngularFire文档。