2017-04-09 25 views
1
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); 
    } 

} 

喜有此代码我试图新用户的用户表中的问题是我无法找到一套方法,我只能访问下添加到我的火力表推动是我做错了什么? 感谢你的帮助如何设置新的火力点插入的ID

回答

0

尝试,而不是下面作为例子的情况下,其中:

列表$添加({FOO: “巴”})。然后,(...);

该示例取自AngularFire文档。

1

AngularFire2不会泄露set列表observables。您应该使用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);