2017-04-06 16 views
0

イムそれが呼び出す方法がわからないとみとめオブジェクトをプッシュする、しかし、私はちょうどのようにデータをプッシュしたい:は良いことがあります:Firebaseは、キー

.push()

{ 
    '{this_should_be_a_key}' : { 
     name : '', 
     items : { 
      '{this_should_be_a_key}' : { 
       title : '' 
      } 
     } 
    } 
} 

は今、私のような何かを使用することにより私が持っている

ref.push({ 
    'name' : '' 
}).then(function(snapshot) { 
    let key = snapshot.key; 
    ref.child(key+'/items').push({ 
     title : '' 
    }); 
}).catch(function(err) { 
    console.log(err); 
}); 

この約束と2回押す、任意の簡単な方法またはその可能性が一度だけプッシュ?以下のような...

ref.push({ 
    'name' : '', 
    'items' : { 
     '{this_should_be_a_key}' { 
      'title' : '' 
     } 
    } 
}).then(function(snapshot) { 
    alert('done'); 
}).catch(function(err) { 
    console.log(err); 
}); 

答えて

1

Firebaseのプッシュキーが実際にクライアント上で生成され、あなたがで1を生成することができます引き数なしでpushを呼び出してください。 Referenceが返され、keyが生成されたプッシュキーになります。これは完全にクライアント側であり、サーバーとの通信には関係しません。

だからあなたは、キーを生成してデータを準備し、再度pushを呼び出すことができます。

var key = ref.push().key; 
var data = { 
    name: '', 
    items: {} 
}; 
data.items[key] = { title: '' }; 

ref.push(data) 
    .then(function() { console.log('pushed'); }); 
    .catch(function (error) { console.log(error); }); 
+0

感謝を! 、 'ref.push()。key'これは一意のIDになりますか? – l2aelba

+1

まあ、かなり:https://gist.github.com/mikelehen/3596a30bd69384624c11 – cartant

0

あなたはitemsリストについては、別のノードを作成し、ちょうど親要素でキーを保存することができ

関連する問題