2016-03-22 7 views
1

"プロパティに無効なキー(.KEY)を含む" リアクトreactfireは+ firebaseは私が更新()または設定()を使用しようとするとエラーが出る

私の関連するコード:

const ref = new Firebase('https://whatever.firebase.org/employees'); 
export default class EmployeeNew extends React.Component { 
... 
    this.update =() => { 
    console.log(this.state, this.props.employee['.key']); 
    ref.child(this.props.employee['.key']).set(this.state); // <-- no-dice 
    // ref.update(this.state); <-- also fails. 
    } 
... 
} 

出力ブラウザのコンソールで

Object {avatar: "https://somevalue.png", name: "Bananaman", .key: "-KDObp8r82Ornrrmfbk5"} 
Object "-KDObp8r82Ornrrmfbk5" 

エラー:

app.js:28366 Uncaught Error: Firebase.set failed: First argument contains an invalid key (.key) in property 'employees.-KDObp8r82Ornrrmfbk5'. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]" 
上に書かれた更新が呼び出されたときに、コンソールログの、

物事は私が試してみました:私は基本的に「.KEY」を省略して、新しい状態オブジェクトをハードコーディングすることにより、自分の意図した結果を達成することができました

ref.update(this.state); // same error 
    ref.update({this.props.employee['.key']: this.state}); // same error 
+0

新しい状態オブジェクトをハードコーディングして、基本的に '.key'を省略して、私の意図した結果を達成することができました。 – Pandem1c

答えて

1

は...より良い方法カントーがなければなりません。提案に開放されています。ありがとう!

+0

React Fireがこのように設計された理由を知るには、より良い方法があるとは思えません。とにかく 'this.state.name'と' this.state.avatar'オブジェクトかfirebaseの単なる値ですか?なぜなら、それらが値であれば、あなたは 'avatar:this.state.avatar ['。value']'を実行する必要があるからです。しかし、私はあなたがそれを知っていると思います。 – ArneHugo

関連する問題