2017-09-04 19 views
0

私はFirebaseにヌルデータを送信し、私は、このエラーメッセージが出ていとの問題を抱えている:Firebase未定義のエラー

ランタイムエラー 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

あなたが火災基地に投稿しようとしているものを共有することができるので、問題をよりよく理解することができます。 問題なしで 'null'を渡すことができます。 – sketchthat

+0

あなたは行く、私はあなたundestandを願っています。 –

+0

あなたは 'angularfire2'を使っていますか?これは有効なコマンドですか? 'this.af.database.ref( 'alunos')。push()。set(params);' this.af.list( 'alunos')にしないでください。 – sketchthat

答えて

1

nullsetコマンドに渡すことはできません。

setは新しいオブジェクトを作成します。既存のオブジェクトの更新には使用されません。

したがって、作成時に無視されるため、nullは必要ありません。オブジェクトからnumerogeneroを削除する必要があります。既存のオブジェクトを更新する場合は、コマンドにthis.af.database.ref('alunos').update(params);

を作るときにnullが受理された

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

setupdateとの違いについての詳細はdocsの読み取りを持っています。