【问题标题】:Data is not retrieving from Firebase database未从 Firebase 数据库中检索数据
【发布时间】:2018-12-22 15:15:32
【问题描述】:

这是我的组件。我不知道为什么没有从 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)

【问题讨论】:

    标签: angular typescript firebase firebase-realtime-database angular2-services


    【解决方案1】:

    您可以使用这种方式从 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;
            });
           }
        });
    
      }
    
    }
    

    【讨论】:

      【解决方案2】:

      我得到答案的最终代码是-

      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() {
         }
      }
      

      【讨论】:

        【解决方案3】:

        此代码的问题是,当您可能想要记录可观察对象正在观看的数据时,您正试图将可观察对象输出到控制台。

        所以你可能想要改变:

            console.log("Console", this.tasks);
        

        到这里:

            this.tasks.subscribe(items => {
                console.log(items);  
            });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-16
          • 1970-01-01
          相关资源
          最近更新 更多