0

私はfirebaseListObservableリストをfirebaseから取得しています。私がIDS順次、forEachのを使用してFirebaseListObservableの一つの方法を更新したい。ここ角度ファイア2:FirebaseListObservableリストの最後の要素を取得しています。

{ 
    "0" : { 
    "completed" : false, 
    "description" : "Grab the grocerry", 
    "id" : 25, 
    "status" : true, 
    "title" : "Grocerry" 
    }, 
    "1" : { 
    "completed" : false, 
    "description" : "some task", 
    "id" : 26, 
    "status" : true, 
    "title" : "Complete this" 
    } 
} 

:私のオブジェクトは、次のようになります。しかし、それはリストが成長するにつれて高価になります。だから私の質問は、 1)Idといくつかの要素を見つけることができます。 2)IDを順番に更新するために、IDの最後のインデックスを取得する方法。

マイコード:

import { Component, OnInit } from '@angular/core'; 
import { todo } from '../shared/todo'; 
import {AngularFireDatabaseModule,AngularFireDatabase, FirebaseListObservable} from 'angularfire2/database'; 
import {AngularFireAuthModule, AngularFireAuth } from 'angularfire2/auth'; 

@Component({ 
    selector: 'app-add-task', 
    templateUrl: './add-task.component.html', 
    styleUrls: ['./add-task.component.css'] 
}) 
export class AddTaskComponent { 
    newTask :todo = new todo(); 
    finalObject : todo = new todo(); 
    active: boolean = true; 
    todos: FirebaseListObservable<any[]>; 
    constructor(afAuth: AngularFireAuth, db: AngularFireDatabase) { 
    // this.user = afAuth.authState; 
     this.todos = db.list('todos'); 
    } 
    onSubmit() { 
     console.log(this.newTask); 
     console.log(this.todos); 
     this.finalObject = { 
      'id' : 29, 
      'title' : this.newTask.title, 
      'description' :this.newTask.description, 
      'status':true, 
      'completed' :false 
     }; 
     //this.todos.push(this.newTask); 

     this.newTask = new todo(); 
     /* To reset the form*/ 
      this.active=false; 
      setTimeout (()=> this.active=true,0); 
     /* To reset the form*/ 
    } 
} 

答えて

0

あなたがこれを行うことができます:

import 'rxjs/add/operator/do'; 

this.todos = db.list('todos').do(data => this.length = data.length); 

そして、あなたは最後の項目を更新するだけで実行します。

db.list('todos').update(this.length - 1, newData); 
+0

.doという()メソッドのdoesnをFirebaseListObservableリストでサポートされていないので、私のために働きません。あなたは何か他の方法を提案できますか? – vaibhav

+0

rxjsからインポートした場合です。 – Chrillewoodz

+0

更新された回答を確認してください。 – Chrillewoodz

関連する問題