Typescript Firebase未定义错误
我在向Firebase发送空数据时遇到问题,并收到以下错误消息: 运行时错误 Reference.update失败:第一个参数在属性中包含未定义的 我有:Typescript Firebase未定义错误,typescript,firebase,firebase-realtime-database,Typescript,Firebase,Firebase Realtime Database,我在向Firebase发送空数据时遇到问题,并收到以下错误消息: 运行时错误 Reference.update失败:第一个参数在属性中包含未定义的 我有: public save(url: string, params: any) { return this.af.database.ref('alunos').push().set(params); } 作为params,我将发送: this.aluno = { bairro: ''
public save(url: string, params: any) {
return this.af.database.ref('alunos').push().set(params);
}
作为params,我将发送:
this.aluno = {
bairro: '',
celular: '',
cep: '',
cidade: '',
cpf: '',
dataNascimento: '',
email: '',
nome: '',
numero: null,
rg: '',
rua: '',
ativo: true,
genero: null,
telefone: '',
uf: ''
};
我已经知道Firebase不接受未定义,但我使用null,所以这不应该发生,对吗?有什么方法可以在不改变数据结构(如字符串)的情况下解决此问题 您不能将
null
传递给set
命令
set
将创建一个新对象。它不用于更新现有对象
因此不需要null,因为在创建时会忽略它。您应该从对象中删除numero
和genro
this.aluno = {
bairro: '',
celular: '',
cep: '',
cidade: '',
cpf: '',
dataNascimento: '',
email: '',
nome: '',
rg: '',
rua: '',
ativo: true,
telefone: '',
uf: ''
};
如果要更新现有对象,则在执行命令this.af.database.ref('alunos').update(params)时接受null
代码>
有关set
和update
之间差异的更多信息,请阅读 您是否能够将您试图发布的内容分享给firebase,以便我们更好地了解该问题。您可以通过null
而不会出现问题。现在,我希望您不理解。您是否正在使用angularfire2
?这是一个有效的命令<代码>返回这个.af.database.ref('alunos').push().set(params)代码>不应该是这个.af.list('alunos').push(params)代码>?@Sketch我正在使用ionic,this.af.database.ref('alunos').push().set(params);是错误的方式,现在我使用这个.af.database.ref('alunos').push(params);我应该使用列表(“alunos”)吗?这有什么区别吗?我不确定,我还没有看过ref
的文档。使用list
将为数据库写入生成唯一键。