【问题标题】:Angular 2: Retrieve objects from firebaseAngular 2:从 Firebase 中检索对象
【发布时间】:2017-11-13 23:38:38
【问题描述】:

以下是我的 firebase 数据库截图:

以下是“app.component”中的代码:

import { AngularFireDatabase, FirebaseListObservable } from "angularfire2/database-deprecated";
import { AngularFireAuth } from 'angularfire2/auth';
import { Observable } from 'rxjs/Observable';
import * as firebase from 'firebase/app';

@Component ....

items: FirebaseListObservable<any[]>;

constructor(public af: AngularFireDatabase) {
   this.items = af.list('/projects', {
     query: {
       limitToLast: 10
     }
   });
   console.log(this.items);
}

但我没有得到数据。谁能帮我解决这个问题?

我已经完成了 angularfire2 设置并且能够将数据写入实时数据库。这是从 db 获取数据的问题。

【问题讨论】:

    标签: angular firebase firebase-realtime-database angularfire2


    【解决方案1】:

    您需要调用列表上的订阅方法。因此:

    this.items = af.list('/projects').valueChanges().subscribe(items => {
        console.log(items);
    }));
    

    我看到你正在使用database-deprecated 包。代码应该是这样的:

    this.firebaseList = af.list('/projects'); // This is of type FirebaseListObservable
    
    this.items = this.firebaseList.subscribe(items => {
        console.log(items);
    })); // This is of type subscription.
    
    this.firebaseList.push({...data}); // Now you can push.
    

    【讨论】:

    • 我把它改成了:items: Observable;构造函数(公共 af:AngularFireDatabase){ this.items = af.list('/projects').subscribe(items => { console.log(items); }); } 但它说,类型“订阅”不可分配给类型“Observable”。 “订阅”类型中缺少属性“_isScalar”。 (属性) AddProjectComponent.items: Observable
    • 完美!!现在可以了。但是,现在我无法推送:this.items.push(form.value)。它说:“订阅”类型上不存在属性“推送”。
    • 你是我的英雄。谢谢!
    • @StanvanHeumen 您的代码非常适合获取所有数据并在控制台中打印,但请考虑是否必须找到密钥:accountDetials:来自上方图片的邮件在此我如何打印邮件的值跨度>
    猜你喜欢
    • 1970-01-01
    • 2017-12-28
    • 2017-02-04
    • 2017-01-21
    • 2020-03-14
    • 2017-01-13
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多