angular - Firestore : Add Custom Object to db

标签 angular firebase angularfire2 google-cloud-firestore

早上好

我试着从这个类中添加一个新创建的对象:

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);
  }
}

在我的服务中,创建函数如下所示:

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

当我以这种方式尝试时,出现以下错误:

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

我该如何解决这个问题?

最佳答案

你也可以使用 Object.assign({}, sponsor)

所以在你的情况下会是

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

关于angular - Firestore : Add Custom Object to db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46578701/

相关文章:

swift - 我如何在注册用户时提供安全性? (例如 : each username must be different, 电子邮件必须有效等)

android - Google Cloud Functions - 客户端调用错误(Android Studio):FirebaseFunctionsException: Response is not valid JSON object

angular - 如何使用 Angularfire2 从 Firebase 存储中删除

angular - 检查用户是否仍在 angularfire2 中通过身份验证

angular - 将类导出为 Angular2 中的接口(interface)

angular - 使用注入(inject)器根据类名获取服务

angular - 保持默认路由与父路由的 Angular

angular - 有条件地应用指令

java - 如何在较新版本的 Android 3.1 及更高版本中实现 Firebase Recycler Adapter?

database - AngularFire2 如何创建用户(名字、姓氏、电子邮件、密码)