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?
Yes, this is possible using a combination of two collections, Firestore rules and batched writes. The simple idea is, using a batched write, you write your document to your "data" collection and at the same write to a separate "index" collection where you index the value of the field that you want to be unique.
You can also use Object.assign({}, sponsor)
so in yor case it would be
this.collection.doc(sponsor.id).set(Object.assign({}, sponsor));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With