Coa*_*ach 15 firebase angularfire2 angular 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);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的服务中,create函数看起来像:
createSponsor(sponsor) {
sponsor.id = this.afs.createId();
return this.collection.doc(sponsor.id).set(sponsor);
}
Run Code Online (Sandbox Code Playgroud)
当我这样尝试时,我收到以下错误:
FirebaseError:[code = invalid-argument]:函数DocumentReference.set()使用无效数据调用.数据必须是一个对象,但它是:一个自定义的赞助商对象
我该如何解决这个问题?
小智 24
您也可以使用Object.assign({},赞助商)
所以在你的情况下它会是
this.collection.doc(sponsor.id).set(Object.assign({}, sponsor));
Run Code Online (Sandbox Code Playgroud)
小智 8
您还可以将对象序列化为JSON并将其反序列化为常规JavaScript对象
this.collection.doc(sponsor.id).set(JSON.parse( JSON.stringify(sponsor)));
Run Code Online (Sandbox Code Playgroud)
适用于深层嵌套.
感谢 Fabian Wiles - 我明白了!
虽然 firebase 可以将对象内的数据发送到数据库,但当数据返回时,它无法将其实例化回类的实例中。因此不允许上课
只需像这样保存一个对象:
interface Person{
name: string;
age: number
}
var person: Person = { name: 'Toxicable', age: 22} ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9304 次 |
| 最近记录: |