在angularfire中使用$ set和$ save有什么区别? 此外,在以下情况下,发送到服务器的数据量是否存在差异:
我可以拥有一个firebase对象:
$rootScope.projectgroups= pgsync.$asObject();
在$ rootScape中定义,只需调用
即可从每个控制器保存对它的更改$rootScope.projectgroups.$save();
我还可以使用$ set保存对服务器的更改,并定义子对象的确切位置:
$firebase(pgref.child($rootScope.prgrid +
"/projects/")).$set($rootScope.prid,
$rootScope.projectgroups[$rootScope.prgrid].projects[$rootScope.prid]);
在服务器的数据事务上使用$ set更便宜的方式为子对象分配新数据而不是在整个对象上使用$ save吗?或者angularfire会以某种方式将对象与对象历史进行比较,并仅将最后一次本地更改推送到服务器?
答案 0 :(得分:2)
在angularfire中使用$ set和$ save有什么区别?
$set
是为了方便$firebase
服务而存在的。无需先在本地下载任何数据即可调用它。
$save
。它在内部调用$set
,可以通过查看源代码来看到(了解lib的好方法)。它通过将同步对象/数组转换为JSON数据然后将其发送到$set
来保存它们。
此外,在以下情况下发送到服务器的数据量是否存在差异
完全没有
使用$ set更便宜的数据事务向服务器分配新数据,而不是在整个对象上使用$ save吗?
如果您没有在本地同步数据,那就便宜了。如果您已经下载了一个集合,则它们是等效的。
或者angularfire会以某种方式将对象与对象历史记录进行比较,并仅将最后一次本地更改推送到服务器?
它没有,但Firebase在内部处理这些复杂性,因此您(和AngularFire)可以只编码并感到高兴。