在change typescript上观察firebase数据库

时间:2018-03-05 05:27:54

标签: angular typescript firebase firebase-realtime-database angular5

所以我在角色服务中调用我的firebase实时数据库,如下所示:

[4, 4, 4]

回调只是修改了对我需求的响应。我需要做的是在我调用readItems() { return this.af.database.ref(`/path`) .on('value', snap => this.callback(snap.val())); } 的组件中获取此修改后的数据。在这里调用上述组件:

readItems

我希望在完成时找到并使用带有this.service.readItems(); subscribe的可观察或承诺返回修改后的响应。我无法想象如何做到这一点,任何帮助都会很棒。

1 个答案:

答案 0 :(得分:2)

您可以在传递给on函数的回调中使用来自rxjs的Subject并订阅它:

valueChanged$ = new Subject();

callback(val) {
    // some code ...
    valueChanged$.next(val); // pass whatever you need to receive in the subscription
}

readItems() {
  return this.af.database.ref(`/path`)
    .on('value', snap => this.callback(snap.val()));
}

然后在你的代码中:

this.valueChanged$.subscribe(data => doStuff(data));
this.service.readItems();