firebase $add() .push() .set()

2024-01-22

我正在使用 firebase 和 Angularfire。 使用 Firebase Api 进行 CRUD 的方法有很多种 实际上,我仍然不明白使用的具体区别是什么

  • $add 与 $firebaseArray
  • .push() 方法
  • .set() 方法

我认为它们在技术上是相同的,我更喜欢使用 .set method() 而不知道确切的原因,为什么我要使用它。有什么具体原因不使用它吗? $firebaseArray 到底做了什么?如果我们可以只声明基本引用变量。

在这种情况下:

var usersRef = Ref.child('users');

  $scope.createUser = function() {
    $scope.userRef.child($id).set({
       name: name
           });
      };

or

$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 方法,因此在将数据推送到子级时将使用新的随机 Key。

{
  users:
   {[
      key: { name:"bob" },
      key2: { name:"name" }
   ]}
}

如果我对同一个 Users 对象进行设置,我将覆盖已经存在的数据。因此,在您的示例中,如果不指定键,您将覆盖整个用户对象。

$scope.userRef.child('users').set({
       name: name
           });
      };

这将导致此数据

{
  users:
   {
      name: "name"
   }
}

发生这种情况是因为传递给 Set 方法的任何空值都会删除原来存在的所有数据。

将 null 传递给 set() 将删除指定位置的数据。https://www.firebase.com/docs/web/api/firebase/set.html https://www.firebase.com/docs/web/api/firebase/set.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

firebase $add() .push() .set() 的相关文章

随机推荐