如何设置新firebase插入的id

时间:2017-04-09 00:17:11

标签: javascript firebase ionic2 angularfire2

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;我做错了吗? 谢谢你的帮助

2 个答案:

答案 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文档。