【发布时间】:2017-02-23 02:35:36
【问题描述】:
我正在尝试使用 AngularFire2 从 Firebase 填充 3 个变量(数组)。
数据库结构是这样的:
我不知道应该如何解决 Promise 以映射来填充这些变量。即使是最简单的查询也不返回任何内容,并且 console.log 也不显示任何内容。
let testConnection = this.AngularFire.database.list(DbPath)
.map((items) => {
console.log(items);
return items.map(item => {
console.log(items);
console.log(item);
})})
我尝试使用.subscribe,但由于这会保留快照(并且不保留它不起作用),因此对我来说这是不可行的:/。但它有效并且正确地填充了它。
return this.AngularFire.database.list(DbPath, { preserveSnapshot: true })
.subscribe(
(snapshots:any) => {
snapshots.forEach(snapshot => {
console.log(snapshot.key);
if (snapshot.key === 'disliked') {
this.dataListDisliked = snapshot.val();
}
...
有什么想法吗?非常感谢
【问题讨论】:
-
Map 在 promise 被解析后被调用,我用它来格式化解析的输出。 E.G 解析和 http 响应并返回 json。在调用 map 之后,任何订阅了 observable 的人都会收到新值(“映射”值)的通知。您可能想要同时进行地图和订阅
-
查看
app/hero-search.service.ts这里angular.io/docs/ts/latest/tutorial/toh-pt6.html
标签: angular firebase firebase-realtime-database ionic2 angularfire2