2016-04-12 10 views
3

私はfirebaseとangularfireを使用しています。 Firebaseアピ でCRUDを行うには非常に多くの方法は、実際に、私はまだ

  • $ $ firebaseArrayに追加
  • .push()メソッド
  • を使用するための具体的な違いが何であるかを得ることはありませんがあります.set()メソッド

私は技術的には同じだと思うが、私は正確な理由を知らずに.set method()を使うのが好きだ。それを使用しない特別な理由はありますか?まさに$ firebaseArrayは何ですか?もし基本的な参照変数を宣言することができれば。この場合

var usersRef = Ref.child('users'); 

    $scope.createUser = function() { 
    $scope.userRef.child($id).set({ 
     name: name 
      }); 
     }; 

または

$scope.data = $firebaseArray(Ref.child('users')); 

$scope.createUser = function() { 
    $scope.data.child($id).$add({ 
    name: name 
    }); 
}; 

はあなたに感謝します。

答えて

10

私はFirebaseで、次のデータツリーがある場合:私は$追加するときに$ ADDがプッシュを使用しているので、私は木に

$scope.data.child('users').$add({ 
    name: name 
    }); 

を新しいアイテムを作成します、

{ 
    users: 
    { 
     key: { name:"bob" } 
    } 
} 

をメソッドを使用すると、データを子にプッシュするときに新しいランダムキーが使用されます。

{ 
    users: 
    {[ 
     key: { name:"bob" }, 
     key2: { name:"name" } 
    ]} 
} 

同じユーザーがオブジェクトの上に、私はセットをすれば、私はすでにそこにあるデータを上書きします。したがって、あなたの例では、キーを指定せずに、ユーザーオブジェクト全体を上書きします。

$scope.userRef.child('users').set({ 
     name: name 
      }); 
     }; 

これはSetメソッドに渡す任意のNULL値は、元々あったいかなるデータが削除されますので、これが発生し、このデータ

{ 
    users: 
    { 
     name: "name" 
    } 
} 

となります。

nullをset()に渡すと、指定された場所のデータが削除されます。 https://www.firebase.com/docs/web/api/firebase/set.html

関連する問題