2017-09-04 145 views
0

我在與空數據發送到火力地堡的問題,我收到此錯誤信息:火力地堡未定義的錯誤

運行時錯誤 Reference.update失敗:第一個參數包含在屬性未定義

我:

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,所以這不應該發生?任何方式來解決這個問題,而不改變數據結構像字符串?

+0

您是否可以分享要發佈到Firebase的內容,以便我們更好地瞭解問題。 你可以通過'null'沒有問題。 – sketchthat

+0

你有沒有去,我希望你不要去。 –

+0

你正在使用'angularfire2'嗎?這是一個有效的命令; (返回this.af.database.ref('alunos')。push()。set(params);'不應該'this.af.list('alunos')。push(params);'? – sketchthat

回答

1

您無法將null傳遞給set命令。

set將創建一個新對象。它不用於更新現有對象。

因此不需要null,因爲它在創建時被忽略。你應該從你的對象中刪除numerogenero

this.aluno = { 
    bairro: '', 
    celular: '', 
    cep: '', 
    cidade: '', 
    cpf: '', 
    dataNascimento: '', 
    email: '', 
    nome: '', 
    rg: '', 
    rua: '', 
    ativo: true, 
    telefone: '', 
    uf: '' 
}; 

如果你想要當你命令this.af.database.ref('alunos').update(params);

更新現有的對象,然後null被接受有docs的讀關於setupdate之間的差異的詳細信息。