【问题标题】:how to set id of new firebase insertion如何设置新的Firebase插入的ID
【发布时间】:2017-04-09 00:17:11
【问题描述】:
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);
  }

}

您好,在这段代码中,我正在尝试将新用户添加到 users 表下的 firebase 表中,问题是我找不到我只能访问 push 的设置方法,这是我做错了什么吗? 谢谢你的帮助

【问题讨论】:

    标签: javascript firebase ionic2 angularfire2


    【解决方案1】:

    AngularFire2 不会为列表 observables 公开 set。你应该改用update

    当您查看 observable 对象时,这是有道理的,它确实暴露了set。当在 observable 对象上调用set 时,数据库对象的全部内容被替换为指定的值。

    通常,您永远不会想要替换整个列表,因此 set 不被暴露是有道理的。 update 是合适的,因为您正在更新列表以添加新用户。

    this.users.update(user.id /* or whatever is to be the key */, user);
    

    或者,您可以使用 list observable 的 SDK ref 调用 set

    this.users.$ref.ref.child(user.id /* or whatever is to be the key */).set(user);
    

    【讨论】:

      【解决方案2】:

      尝试以下作为示例,其中:

      list.$add({ foo: "bar" }).then(...);

      此示例取自 AngularFire 文档。

      【讨论】:

        猜你喜欢
        • 2017-03-17
        • 1970-01-01
        • 2012-04-15
        • 1970-01-01
        • 1970-01-01
        • 2019-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多