firebase $add() .push() .set()
firebase $add() .push() .set()
我使用的是firebase和angularfire。有很多方法可以使用Firebase Api进行CRUD实际上,我仍然不知道使用的具体区别是什么
- $add与$firebaseArray
- .push()方法
- .set()方法
我认为它们在技术上是一样的,我更喜欢使用.set方法(),但不知道确切的原因,也不知道我为什么要使用它。有什么具体的理由不使用它吗?$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
});
};
谢谢。
如果我在Firebase中有以下数据树:
{
users:
{
key: { name:"bob" }
}
}
当我添加$add时,我将在树中创建一个新项目
$scope.data.child('users').$add({
name: name
});
由于$add在Firebase中使用Push方法,因此在将数据推送到子级时将使用新的随机密钥。
{
users:
{[
key: { name:"bob" },
key2: { name:"name" }
]}
}
如果我对同一个Users对象进行设置,我将覆盖已经存在的数据。因此,在您的示例中,在不指定键的情况下,您将覆盖整个用户对象。
$scope.userRef.child('users').set({
name: name
});
};
这将导致此数据
{
users:
{
name: "name"
}
}
发生这种情况的原因是,传递给Set方法的任何null值都将删除原始数据。
将null传递给set()将删除指定位置的数据。https://www.firebase.com/docs/web/api/firebase/set.html
相关文章:
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- Ember Data DS.Model's set函数不起作用
- NodeJS API调用中Array中的Push和Pull元素
- C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- 无法在基于Cordova的应用程序中读取Set Cookie标头
- 在不兼容的接收器上调用的方法Set.prototype.add未定义
- Push方法显示错误
- 为什么可以't我用Set对象调用Array.prototype.map
- Sequelize associations:set[Models]添加新模型,而不是关联现有模型
- 如何使用选项useCSS set true为bxSlider加载onSlideAfter()事件
- Array.push导致程序出错
- Node JS,传统的数据结构?(如Set等),任何类似Java.util的node
- Firebase“;未捕获的类型错误:myDataRef.push不是函数;
- $$hashKey在Angular中push()新对象时未生成新值
- 带array.push()的双方括号---JavaScript
- Bootstrap-Datepicker not selecting date when using "set
- firebase $add() .push() .set()
- ractivejs observe init vs set/push/update
- 如何使用 .push 或 set 在 Firebase 中创建新的子密钥