2017-10-18 41 views
0

我一直在从Firebase上的实时数据库获取数据时遇到问题。一切都设置正确,读写权限是公开的,所以我不必认证。Angular不通过Angularfire2提取数据

npm编译成功。所以代码很好(Angular-CLI)。就文档而言,我尝试了GitHub页面上的内容。

当我从一个对象中插入数据时,前端的返回值为Null。当我对列表执行相同操作时,返回值为空。 * ngFor甚至不会工作。

任何人都有同样的问题或可以帮助吗?

代码如下所示。这是来自文档的直接副本。

我的数据库实际上没有按照db.list('items')标注“Items”的标签。我不认为这会是问题,但会造成问题吗?

import { Component } from '@angular/core'; 
import { AngularFireDatabase } from  'angularfire2/database'; 
import { Observable } from 'rxjs/Observable'; 

@Component({ 
    selector: 'app-root', 
    template: ` 
    <ul> 
    <li *ngFor="let item of items | async"> 
    {{ item | json }} 
    </li> 
    </ul> 
    `, 
}) 
export class AppComponent { 
    items: Observable<any[]>; 
    constructor(db: AngularFireDatabase) { 
    this.items = db.list('items').valueChanges(); 
    } 
} 

在火力的数据具有这种结构..

[ 
{"THIS" : string , "THAT" : string}, 
{"THIS" : string , "THAT" : string} 
] 

这就是该文件看起来像我上传之前。

+0

你可以展示你的json结构在Firebase控制台中的样子吗? – ashley

+0

也许你可以尝试使用不同的'tableName'而不是'items'来查看你是否得到了一些数据。 – John

+0

JSON看起来像这样。 [{“something”:string,“someelse”:string},{“something”:string,“someelse”:string}] ..我将文件上传到firebase。 –

回答

0

我想你忘了创建items集合。

您订阅了items集合在这里:

this.items = db.list('items').valueChanges();

尝试导入这一个,看看你得到了一定的成效:

{ 
    "items": [ 
    { 
     "THIS": "test", 
     "THAT": "test" 
    }, 
    { 
     "THIS": "test", 
     "THAT": "test" 
    } 
    ] 
} 

在火力看起来如:

enter image description here

+0

嗨,tim。我试过,但同样的事情发生..实际上更糟糕...现在,我运行ngFor的html对象..完全消失。 –

+0

你可以上传你的Firebase数据库的截图吗? –

+0

刚刚做到了。希望你能帮忙。 –

相关问题