2017-04-21 18 views
5

बचत angulafire के साथ यह डेटाबेस के लिए सहेजने से पहले एक रिकार्ड pushid पुनः प्राप्त करना संभव था पहले नए pushid हो जाता है:angularfire2 मॉडल वस्तु

myModelDto.key = dbRef.push().key; 
// Add the myModelDto to the relative colletion 

यह आसान था के रूप में मैं की संपत्ति के रूप firebase कुंजी संग्रहीत कर सकती है मेरी आदर्श।
अब angularfire2 के साथ इस एक साफ/सरल तरह से संभव प्रतीत नहीं होता:

constructor(private angFire: AngularFire) { 
    this.placeRef$ = angFire.database.list('/places'); 
} 

insertPlace = (place: IPlace): firebase.Thenable<IPlace> => { 
    return this.placeRef$.push(place) 
       .then(item => { 
          place.id = item.key; 
          this.placeRef$.update(item.key, place) 
       }); 

इसलिए मैं सोच रहा हूँ कि क्या मैं एक गलत तरीके से firebase आ रहा (एक प्रमुख संपत्ति के लिए अपने मॉडल के लिए बाध्य करने के इच्छुक सुविधा) या यदि नए जोड़े गए रिकॉर्ड में पुशिड जोड़ने का बेहतर तरीका है।

उत्तर

0

angularfire2 के मुद्दों

https://github.com/angular/angularfire2/issues/199

kanafghan पर इस जवाब पर एक नजर डालें लिखते हैं:

const pushId = this.afDb.createPushId(); 
const item = { ...item, id: pushId }; 

this.afDb.list('items').set(item.id, item); 
संबंधित मुद्दे