firebase数据库存储项目列表

时间:2016-07-15 12:27:51

标签: javascript firebase firebase-realtime-database

enter image description here

这是我的代码

    //1. Add menu items to the globalMenu and to restaurant, and the restaurantId of the restaurant adding menu.
    this.writeNewMenuItem = function(itemName, restaurantId) {
        // A post entry.
        var menuItem = {
            itemName: [itemName]
        };

        var ref = firebase.database().ref();

        // Get a key for a new Post.
        var newItem = ref
          .child('globalMenu')
          .push(menuItem);

        ref
          .child('restaurants')
          .child(restaurantId)
          //.child(newItem.key)
          .update(menuItem);

    }
  1. 另请告诉我们推送和弹出这些物品的方式。
  2. 如果发现重复,则不应插入。
  3. 我想要获取匹配的字符项,例如,如果我通过了应用程序'在查询中,这应该返回' apple,application,appengine'我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您应该尝试避免使用Firebase数据库中的“数组”,因为:

  

...对于分布式数据,它们不可靠,因为它们缺乏访问每条记录的独特,永久的方式。

https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html

关于第三个问题:无法以这种方式查询数据库,您需要接收所有子节点的完整列表并在客户端进行过滤。我可以建议阅读构建数据的最佳实践:https://firebase.google.com/docs/database/admin/structure-data