火力基地 $add() .push() .set()
firebase $add() .push() .set()
我正在使用 firebase 和 angularfire。
使用 Firebase 进行 CRUD 的方法有很多 Api
实际上,我仍然不明白 using
的具体区别是什么
- $添加$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
});
};
谢谢。
如果我在 Firebase 中有以下数据树:
{
users:
{
key: { name:"bob" }
}
}
当我执行 $add 时,我将在树中创建一个新项目
$scope.data.child('users').$add({
name: name
});
由于$add在Firebase中使用了Push方法,所以在向child推送数据时会使用新的随机Key。
{
users:
{[
key: { name:"bob" },
key2: { name:"name" }
]}
}
如果我对同一个用户对象进行设置,我将覆盖已经存在的数据。因此,在您的示例中,如果不指定密钥,您将覆盖整个用户对象。
$scope.userRef.child('users').set({
name: name
});
};
这将导致此数据
{
users:
{
name: "name"
}
}
发生这种情况是因为您传递给 Set 方法的任何空值都会删除原来存在的所有数据。
Passing null to set() will remove the data at the specified location.
https://www.firebase.com/docs/web/api/firebase/set.html
我正在使用 firebase 和 angularfire。 使用 Firebase 进行 CRUD 的方法有很多 Api 实际上,我仍然不明白 using
的具体区别是什么- $添加$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
});
};
谢谢。
如果我在 Firebase 中有以下数据树:
{
users:
{
key: { name:"bob" }
}
}
当我执行 $add 时,我将在树中创建一个新项目
$scope.data.child('users').$add({
name: name
});
由于$add在Firebase中使用了Push方法,所以在向child推送数据时会使用新的随机Key。
{
users:
{[
key: { name:"bob" },
key2: { name:"name" }
]}
}
如果我对同一个用户对象进行设置,我将覆盖已经存在的数据。因此,在您的示例中,如果不指定密钥,您将覆盖整个用户对象。
$scope.userRef.child('users').set({
name: name
});
};
这将导致此数据
{
users:
{
name: "name"
}
}
发生这种情况是因为您传递给 Set 方法的任何空值都会删除原来存在的所有数据。
Passing null to set() will remove the data at the specified location. https://www.firebase.com/docs/web/api/firebase/set.html