根据AngularFire documentation我尝试在对象上设置$priority
,然后使用$save()
更新Firebase上的数据。
我得到的结果是被覆盖为空的对象(它在Firebase中的条目)。
这是我的代码
var ref = new Firebase(firebaseListPath);
var myList = $firebase(ref).$asArray();
myList.$add({
created: Firebase.ServerValue.TIMESTAMP,
user: userId
}).then(function(newItemRef){
var newItemObj = $firebase(newItemRef).$asObject();
newItemObj.$priority = userId;
newItemObj .$save();
});
答案 0 :(得分:2)
尝试将优先级直接传递给$ add:
myList.$add({
created: Firebase.ServerValue.TIMESTAMP,
user: userId,
$priority: userId
});
也没有理由在同一个同步数据上调用$ asArray和$ asObject(它已经同步)。这适用于您当前的模型,但不必要:
myList.$add({
created: Firebase.ServerValue.TIMESTAMP,
user: userId
}).then(function(newItemRef){
var item = myList.$getRecord(newItemRef.name());
item.$priority = userId;
myList.$save(item);
});
但是,这里没有理由使用AngularFire。如果您没有将任何内容绑定到视图,那么您可以直接调用ref:
var ref = new Firebase(firebaseListPath);
ref.push().setWithPriority({ ... }, userId);