FireBase:如何修改数据库中的对象?

时间:2015-08-02 05:35:54

标签: angularjs firebase angularfire

我正在使用AngularFire。以下是数据库的结构:

supermarket = {
    name : "Food Market",
    products : [
       {name : "Chocolates"}
       {name : "Fruits"}
    ]

 }

我想在产品阵列中推送一个蔬菜对象。我怎么能在firebase中做到这一点?

1 个答案:

答案 0 :(得分:1)

在Angular Firebase文档中说明数组 - 由于数组与服务器数据同步并被客户端同时修改,因此可能会丢失流体数组索引的跟踪并通过操纵错误的记录来破坏数据。因此,永远不应使用push()或splice()等数组方法直接修改列表中项目的位置。

因此你不能使用push()或splice()。 Firebase使用$ add(item)方法为数组添加项目提供了自己的方法。 它在内部确保在此并发环境中处理同步。

在你的情况下 - 如果您的模型与firebase服务器同步

    supermarket = {
      name : "Food Market",
      products : [
           {name : "Chocolates"}
           {name : "Fruits"}
      ]
    }

您可以使用firebase ref。

访问此产品阵列数组
    //create a synchronized array
    $scope.products = $firebaseArray(ref);

    //adding new item to the array
    $scope.products.$add({
     {name : "vegetables"} 
   });