数据未从 Firebase 数据库中检索
Data is not retrieving from Firebase database
这是我的组件。我不知道为什么没有从 firebase 检索数据。谁能告诉我这段代码哪里错了?
import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html'
})
export class DashboardComponent implements OnInit {
tasks: FirebaseListObservable<any[]>;
constructor(
public afdb: AngularFireDatabase
) {
this.tasks = this.afdb.list('scheduler/')
console.log("Console", this.tasks);
}
ngOnInit() {
}
}
当我执行这段代码时,我得到了这个控制台 -
{query: Reference, update: ƒ, set: ƒ, push: ƒ, remove: ƒ, …}
auditTrail
:
ƒ (events){query: Reference, update: ƒ, set: ƒ, push: ƒ, remove: ƒ, …}
auditTrail
:
ƒ (events)
这段代码的问题是,当您可能想要记录可观察对象正在观察的数据时,您正试图将可观察对象输出到控制台。
所以你可能想要更改:
console.log("Console", this.tasks);
对此:
this.tasks.subscribe(items => {
console.log(items);
});
我得到答案的最终代码是-
import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html'
})
export class DashboardComponent implements OnInit {
tasks: FirebaseListObservable<any[]>;
constructor(
public afdb: AngularFireDatabase
) {
this.afdb.list('scheduler/').valueChanges().subscribe(items => {
console.log("items", items);
})
}
ngOnInit() {
}
}
您可以使用这种方式从 firebase 检索数据
import { Component, OnInit } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
@Component({
selector: 'app-coupons',
templateUrl: './coupons.component.html',
styleUrls: ['./coupons.component.css']
})
export class CouponsComponent implements OnInit {
constructor(
private afdb: AngularFireDatabase
) { }
ngOnInit() {
}
getData() {
this.afdb.list('scheduler/').snapshotChanges()
.subscribe(values=>{
if(values) {
values.map(val=>{
let data = val.payload.val(); //get data
let uid = val.key;
});
}
});
}
}
这是我的组件。我不知道为什么没有从 firebase 检索数据。谁能告诉我这段代码哪里错了?
import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html'
})
export class DashboardComponent implements OnInit {
tasks: FirebaseListObservable<any[]>;
constructor(
public afdb: AngularFireDatabase
) {
this.tasks = this.afdb.list('scheduler/')
console.log("Console", this.tasks);
}
ngOnInit() {
}
}
当我执行这段代码时,我得到了这个控制台 -
{query: Reference, update: ƒ, set: ƒ, push: ƒ, remove: ƒ, …}
auditTrail
:
ƒ (events){query: Reference, update: ƒ, set: ƒ, push: ƒ, remove: ƒ, …}
auditTrail
:
ƒ (events)
这段代码的问题是,当您可能想要记录可观察对象正在观察的数据时,您正试图将可观察对象输出到控制台。
所以你可能想要更改:
console.log("Console", this.tasks);
对此:
this.tasks.subscribe(items => {
console.log(items);
});
我得到答案的最终代码是-
import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html'
})
export class DashboardComponent implements OnInit {
tasks: FirebaseListObservable<any[]>;
constructor(
public afdb: AngularFireDatabase
) {
this.afdb.list('scheduler/').valueChanges().subscribe(items => {
console.log("items", items);
})
}
ngOnInit() {
}
}
您可以使用这种方式从 firebase 检索数据
import { Component, OnInit } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
@Component({
selector: 'app-coupons',
templateUrl: './coupons.component.html',
styleUrls: ['./coupons.component.css']
})
export class CouponsComponent implements OnInit {
constructor(
private afdb: AngularFireDatabase
) { }
ngOnInit() {
}
getData() {
this.afdb.list('scheduler/').snapshotChanges()
.subscribe(values=>{
if(values) {
values.map(val=>{
let data = val.payload.val(); //get data
let uid = val.key;
});
}
});
}
}