おもちゃのリストを表示したいと思います。ユニークな名前として achのおもちゃ。 名前には任意の文字を含めることができるため、ドットにスラッシュまたはドルを付けることができます。 これは、私が生成したキーを取得するためにpushメソッドを使用する方が好きな理由です。ユニークメンバーのFirebaseデータ収集
私が結んでいるコードは面倒です。 スレッドセーフではなく、重複するおもちゃで終わる可能性があります。 良い方法がありますか?
var child = testsRef.orderByChild("name").equalTo("Meccano");
return child.once('value').then(function(snapshot) {
var snap = snapshot.val();
if (snapshot.val()) {
alert('Toy ' + value + ' already exists.');
} else {
var newPostKey = testsRef.push().key;
var updates = {};
updates[newPostKey] = { name: value };
var result = testsRef.update(updates);
alert('We can only assume that it has worked.' + result);
}
});
私はここに私の質問を説明するためにcodepen完全な作業を建て: http://codepen.io/paganaye/pen/EWrayY
。 あなたの関数は、はるかに多くの文字を置き換えます。 約 ファンクションfbKeySanitizer(str){ return str.replace(/[%.$[¥]#//]/g、function(c){ return '%' + c.charCodeAt(0) .toString(16).toUpperCase(); }); } –
これはおそらく動作しますが、URLの安全性は少なくとも私の状況では便利です。エンコーディングを選択したら、それに固執してください。ラウンドトリップが無損失であっても、エンコーディングを異なる方法で開始すると、ルックアップが失敗します。 – Mike
あなたの正規表現は壊れていると思いますが、最初の大括弧ではエスケープが必要です。 ''%。$ []#/ "'%。$ []#/ "。 $ []#/ "。replace(/[%.$[\]#\/]/g、 '*')' => '" ******* "' – Mike