在图像中,红色突出显示的红色框显示键 - 由firebase生成
我想要做的是通过餐厅钥匙和同一项目向餐馆中的菜单项添加到globalMenu。
因此,添加的菜单项将在globalMenu中以及restaurant
中的副本。
firebase通过复制餐厅密钥而不是将itemName添加到restaurant
中来在数据库中添加新实体。
请帮我解决建模数据库。
**这是我的代码**
//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]
};
// Get a key for a new Post.
var newItemKey = firebase.database().ref().child('globalMenu').push().key;
// Write the new item's data simultaneously in the globalMenu list and the restaurants's menu list.
var updates = {}, updatesRestaurant = {};
updates['/globalMenu/' + newItemKey] = menuItem;
updatesRestaurant['/restaurants/' + restaurantId + '/' + newItemKey] = menuItem;
firebase.database().ref().update(updatesRestaurant);
return firebase.database().ref().update(updates);
}
//End
答案 0 :(得分:1)
试试这个:
//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);
}