我的firebase数据库结构如下:
我想删除类别1,但当我向*.firebaseio.com/categories/1.json
发送DELETE请求时,我得到:
我想更改数组中的其余索引以获取没有空项的数组。
删除categories[1]
后可以获得这样的新数组吗?:
答案 0 :(得分:1)
在这种情况下,你应该将你的项目推送到firebase,firebase将在时间戳之后分配一个唯一的id
来自指南:
获取push()生成的唯一ID
调用push()将返回对新数据路径的引用,您可以使用该路径获取其ID的值或将数据设置到该数据路径。以下代码将生成与上述示例相同的数据,但现在我们可以访问生成的唯一推送ID
// Generate a reference to a new location and add some data using push()
var newPostRef = postsRef.push({
author: "gracehop",
title: "Announcing COBOL, a New Programming Language"
});
// Get the unique ID generated by push() by accessing its key
var postID = newPostRef.key;
答案 1 :(得分:1)
Firebase本身不存储数组。如您所见,它将数据存储在具有“顺序数字”索引的常规JSON对象中。从该JSON对象中删除项目时,其他索引不会自动更新。
这里有两个选项:
Firebase推送ID是Firebase的等价订单集合。虽然它们不像顺序数字索引那样容易阅读,但它们有几个重要的优点。您可以在this blog post about arrays和此博文中了解有关推送ID的更多信息。
要通过REST API生成推送ID,请使用POST
请求添加每个项目。