2017-03-15 3 views
0

私はカウンターのプロパティを試してみましたが、何もanglefire2でリストノード数を取得する方法は?

を取得していない、私はこのリストの= 3以上の場合であり、リストのキー数を、取得する必要があり、

List 
    key1 
    item 
    key2 
    item 
    key3 
    item 

をfirebase内のリストを持ちます

答えて

0

最も基本的なアンギュラ2の方法は、キーを反復してカウンタをインクリメントすることです。

this.af.database.list(`list`) 
.subscribe(keys => { 
    keys.forEach(key => this.counter = this.counter + 1) 
}) 

このメソッドに有効な反対は、これらすべてのキーを反復処理すると、すべての子プロセスのデータが取得されることです。 Firebaseのshallow query uriパラメータを使用すると、子ノードからデータをロードせずにキーを反復処理できます。 Angular 2でこれを行うには、Httpモジュールを使用する必要があります。これはおおよその近似です。

import { Http, Response } from '@angular/http'; 

constructor(private af: AngularFire, private http: Http) { } 

countKeys() { 
    this.http.get('https://your-database.firebaseio.com/keys.json?shallow=true') 
    .subscribe(response => { 
     Object.keys(response.json()).forEach(key => this.counter = this.counter + 1)) 
    } 
} 
関連する問題