1

次のコードがあります。

var myRootRef = new Firebase('https://myacct.firebaseIO.com');
var collectionRef = myRootRef.child('collection');
var pushRef = collectionRef.push();

pushRef.set('item1');
pushRef.set('item2');
pushRef.set('item3');

「https://myacct.firebaseIO.com」という URL にアクセスすると、コレクションに「item3」しか表示されません。残りの 2 つは表示されません。コレクション オブジェクトが追加されているのではなく、書き換えられているようです。子供の名前を手動で入力すると、うまくいきます。たとえば、次のように動作します。

collectionRef.child(1).set('item1');
collectionRef.child(2).set('item2');
collectionRef.child(3).set('item3');

これはバグですか、それとも私が使用している方法で何か間違ったことをしていpushますか?

ありがとう。

4

2 に答える 2

6

あなたが書いたコードは期待通りに動作しています。push() は、一意の名前を持つ新しい子への参照を作成するヘルパーであり、Firebase でアイテムのリストを作成するのに適した方法です。

コードは次のように書き直すことができます。

var myRootRef = new Firebase('https://myacct.firebaseIO.com');
var collectionRef = myRootRef.child('collection');

collectionRef.push().set('item1');
collectionRef.push().set('item2');
collectionRef.push().set('item3');

push() はオプションで、新しい参照で値として設定される引数を取ることができます。したがって、次のようにコードを少し短くすることができます。

collectionRef.push('item1');
collectionRef.push('item2');
collectionRef.push('item3');

push() の操作について詳しくは、 https ://www.firebase.com/docs/managing-lists.html をご覧ください。

于 2013-01-07T05:36:43.913 に答える
0

Firebase データベースに何もプッシュできませんでした。解決策は、書き込みに必要な認証を削除することでした。[データベース] (左側のパネル) をクリックしてから、Rules[タブ] をクリックします。writeauth == null に変更します。このような:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth == null"
  }
}
于 2016-09-01T05:33:44.110 に答える