Search code examples
angularfirebaseangularfire2google-cloud-firestore

Firestore: Add Custom Object to db


Good Morning,

I tried adding a new created object from this class:

export class Sponsor implements ISponsor {

  title: string;    
  description?: string;
  creation: ICreation;

  constructor(title: string, description: string, author: string) {
     this.title = title;
     this.description = description;
     this.creation = new Creation(author);
  }
}

and in my service, the create function looks like:

createSponsor(sponsor) {
   sponsor.id = this.afs.createId();
   return this.collection.doc(sponsor.id).set(sponsor);
}

When I try it this way, I get the following error:

FirebaseError: [code=invalid-argument]: Function DocumentReference.set() called with invalid data. Data must be an object, but it was: a custom Sponsor object

How can I solve this issue?


Solution

  • You can also use Object.assign({}, sponsor)

    so in yor case it would be

    this.collection.doc(sponsor.id).set(Object.assign({}, sponsor));