Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firestore: Add Custom Object to db

Tags:

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?

like image 406
Coach Avatar asked Oct 05 '17 05:10

Coach


People also ask

How do I add unique data to firestore?

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.


1 Answers

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

so in yor case it would be

this.collection.doc(sponsor.id).set(Object.assign({}, sponsor)); 
like image 85
sgt_lagrange Avatar answered Sep 23 '22 03:09

sgt_lagrange