2017-06-06 6 views
0

Firebaseデータベースで新しいデータをプッシュするときにuidを保存します。これは、認証ユーザーではなく、データオブジェクトに対して可能です。firebaseデータベースリストにデータをプッシュするときに、オブジェクトを保存する方法

例えば、私は、このオブジェクトのスキーマたい:

"-Kdsfdsg555555fdsgfsdgfs" : { <------- I want this id 
    Id : "Kdsfdsg555555fdsgfsdgfs", <--- How to put that inside 
    name : "A", 
    time_updated : "6/6/2017" 
} 

は、このIDを取得し、オブジェクトの内側にプッシュする方法をどのような方法か?次のように

私のコードは次のとおりです。Firebaseのpush()メソッドを使用するには、2つの方法があります

categories: FirebaseListObservable<any[]>; 

this.categories = this.db.list('/categories') as FirebaseListObservable<Category[]>; 

addCategory(category: any) { 
    return this.categories.push(category).then(snap => { 
     this.openSnackBar('New category has been added', 'ok'); 

    }).catch(error => { 
     this.openSnackBar(error.message, 'ok'); 
    }); 
    } 

答えて

0

:引数に渡すことにより

  • が、それは新しい場所を作成し、そこに引数を格納します。
  • 引数を渡すことによって、新しい場所が生成されます。

    addCategory(category: any) { 
        var newRef = this.categories.push(); 
        category.Id = newRef.key; 
        newRef.set(category).then(snap => { 
        this.openSnackBar('New category has been added', 'ok'); 
        }).catch(error => { 
        this.openSnackBar(error.message, 'ok'); 
        }); 
    } 
    

    しかし、それはその内のアイテムのキーを格納するために一般的にアンチパターンだということに注意してください:あなたは、単に新しい場所またはそのキーを取得するためにpush()を使用しての第二の方法を使用することができます

アイテム自体も。

関連する問題