2016-11-07 3 views
-1

_という接頭辞が付いたプロパティを含むオブジェクトをFirebaseデータベースに追加します。プロパティの先頭にアンダースコアを付けたオブジェクトを追加します

保存するとこれらのプロパティだけが無視されるようです。

私のコードは次のようになりますと、正常に動作している:

.config(function($provide) { 
    $provide.decorator('$firebaseArray', function($delegate, $window) { 
     var add, timestamp, currentUser; 

     add = $delegate.prototype.$add; 
     timestamp = $window.firebase.database.ServerValue.TIMESTAMP; 
     currentUser = $window.firebase.auth().currentUser.uid; 

     $delegate.prototype.$add = function (newData) { 
      //works if remove '_' 
      newData['_createdAt'] = timestamp; 
      newData['_createdBy'] = currentUser; 

      return add.call(this, newData); 
     }; 

     return $delegate; 
    }); 
}) 

.config(function($provide) { 
    $provide.decorator('$firebaseObject', function($delegate, $window) { 
     var save, timestamp, currentUser; 

     save = $delegate.prototype.$save; 

     timestamp = $window.firebase.database.ServerValue.TIMESTAMP; 
     currentUser = $window.firebase.auth().currentUser.uid; 

     $delegate.prototype.$save = function() { 
      //works if remove '_' 
      this['_modifiedAt'] = timestamp; 
      this['_modifiedBy'] = currentUser; 

      return save.call(this); 
     }; 

     return $delegate; 
    }); 
}) 
+0

@カルタットありがとう、私はその質問を見つけませんでした。 Finderで見つかったドットはFirebaseでサポートされていませんが、アンダースコアに制限はありません。私は編集し、私の質問を維持する。 –

+0

ええ、アンダースコアは有効である必要があります。 Firebaseコンソールに値が表示されますか? – cartant

+1

@cartantアンダースコアを削除した場合のみです。 '$ firebaseUtils.toJSON'がこれらのプロパティを削除しています。 –

答えて

0

AngularFire組み込み方法$firebaseUtils.toJSONは、いくつかの接頭辞プロパティを除去するので、これはocurringされる理由はあります。

私の問題は私のオブジェクトモデルに.toJSON()を追加して解決しました。

MyObject.prototype = { 
    toJSON: function() { 
     return angular.copy(this); 
    } 
}; 
関連する問題